Задать вопрос
@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)
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 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);
  });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
28 дек. 2024, в 21:56
25000 руб./за проект
28 дек. 2024, в 18:50
1200 руб./в час
28 дек. 2024, в 18:20
50000 руб./за проект