Задать вопрос
@maxduma16

Как правильно записать код без функции setTimeout()?

Подскажите пожалуйста как можна правильно записать данный код, без setTimeout, чтобы диспатч был после того как функция вверху полностю закончит роботу. Учитывая что myPostsAPI.getPosts(u) делает много запросов

const allPosts = [];

array.map((u) => {
  myPostsAPI.getPosts(u)
  .then((res) => {
      Object.values(res).map(p => {
        allPosts.push(p)
      })
  })
})

setTimeout(() => {
  //dispatch
  this.props.setPosts(allPosts);
}, 1000)
  • Вопрос задан
  • 99 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Использовать промисы и Promise.all().
Promise.all(array.map(u => myPostsAPI.getPosts(u)))
  .then(responses => {
    for (let response of responses) {
      Object.values(response).forEach(p => {
        allPosts.push(p);
      });
    }
    this.props.setPosts(allPosts);
  });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы