Получение массива из Promise {}
Всем привет!
пытаюсь получить данные из json файла:
const getData = async () => {
const data = await fetch('db.json');
if (data.ok) {
return data.json();
} else {
throw new Error(`Данные не были получены, ошибка ${data.status} ${data.statusText}`);
}
};
Теперь когда хочу передать или просто увидеть массив через консоль, вот так:
const render = getData();
console.log(render);
То пишет мне :
Promise {<pending>}
__proto__: Promise
[[PromiseState]]: "fulfilled"
[[PromiseResult]]: Array(24)
Как этот массив Array(24) передать в переменную? или обработать фильтром например.
Ответы (1 шт):
Автор решения: yar85
→ Ссылка
Дело в том, что async функции всегда возвращают экземпляр Promise.
Поэтому, либо используем await (если вызывающий код сам находится в async функции... или вне функций, если среда выполнения JS позволяет глобальный await):
try {
const render = await getData();
console.log(render);
/* .... */
} catch (err) {
console.error(err);
}
, либо помещаем обработку результата промиса в коллбэк метода then:
getData().then(render => {
console.log(render);
/* .... */
}).catch(err => {
console.error(err);
});