#javascript #promise
#javascript #обещание
Вопрос:
У меня есть некоторый rest api, и мне нужно получить данные из promise и отобразить их.
const data = http.get(url) // it return the promise.
// [[PromiseState]]: "fulfilled"
// [[PromiseResult]]: Array(4)
Я могу консольно регистрировать необходимые данные:
const data = http.get(url).then(res=> console.log(res.data)) // array in console
Я прочитал несколько руководств, и в любом случае, всегда показано, как выводить результаты журнала на консоль, но мне это не нужно в concole, мне нужно отобразить его в компоненте. Это может быть простой вопрос, но я совершенно новичок в JS.
const ItemsList = () => {
const data = http.get(url) //return promise. How can I get array from thid promise result?
return (
<ul>
{ data.map(item => {
return (
<ItemPreview key={item.id} item={item} />
);
})}
</ul>
)
}
export default ItemsList
пробовал async / await. потратьте уже 4 часа на это задание, но получите только ошибки. Просто не знаю, как это написать. может кто-нибудь помочь и показать мне, как это сделать. Или дайте мне ссылку, где я могу найти, как отобразить результат обещания в компоненте?
Ответ №1:
async
/ await
это путь
const ItemsList = async () => {
const data = await http.get(url)
return (
<ul>
{ data.map(item => {
return (
<ItemPreview key={item.id} item={item} />
);
})}
</ul>
)
}
Комментарии:
1. Правильно! Или вы можете воспользоваться традиционным способом: функция HttpRequest(params, postData) { новое обещание((разрешить, отклонить) => {… разрешить (тело)…} } Это зависит от того, что вы должны делать с результатом. Если вывод другой функции зависит от вывода текущей выполняемой функции, тогда используйте await . но оба способа верны.