lavezzi1
@lavezzi1

Как в forEach использовать await?

Есть async функция, внутри который сначала я фетчу первый массив данных, в нем получаю массив с id элементов который мне нужно зафетчить дальше:

const ids = await fetch('/api/ids/').then(response => response.json()).then(response => response.ids);
const items = [];
ids.forEach((id) => {
  item = await fetch(`/api/items/${id}`).then(response => response.json()).then(response => response.item);
  items.push(item);
});

Что-то вроде этого, но это понятное дело не работает. Как решить?
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
@RidgeA
никак

лучше так:

const ids = await fetch('/api/ids/').then(response => response.json()).then(response => response.ids);
const promises = ids.map((id) => fetch(`/api/items/${id}`).then(response => response.json()));
const items = await Promise.all(promises);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы