Задать вопрос
@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)
  • Вопрос задан
  • 95 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 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);
  });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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