как обработать все асинхронные foreach в javascript и узнать когда все готово

Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
07 марта 2025

Прежде всего необходимо иметь массив промисов, далеее этот массив можно обработать с помощью Promise.all():

const asyncTasks = [1, 2, 3].map(async (item) => {
  // Асинхронная операция, например, запрос к API
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(item * 2);
    }, 1000);
  });
});

Promise.all(asyncTasks)
  .then((results) => {
    console.log(`Все асинхронные задачи завершены: ${results}`);
  })
  .catch((error) => {
    console.error(`Ошибка при выполнении асинхронных задач: ${error}`);
  });

В этом примере массив asyncTasks содержит промисы, то есть список асинхронных задач. Метод Promise.all ждет выполнения всех промисов из массива и возвращает массив результатов, когда все задачи завершены. Вы также можете обработать ошибки, возникшие во время выполнения асинхронных задач, с помощью метода catch.

0 0
Познакомьтесь с основами JavaScript бесплатно