Sobes.tech
Junior
114
questionbank

Что такое Promise.all и как он работает?

Ответ от нейросети

sobes.tech AI

Promise.all принимает итерируемый объект (обычно массив) промисов и возвращает новый промис.

Как работает:

  • Возвращаемый промис выполняется только тогда, когда все входные промисы успешно разрешаются. Результатом выполненного промиса будет массив результатов каждого входного промиса в том же порядке, в каком они были переданы.
  • Если хотя бы один из входных промисов отклоняется, возвращаемый промис немедленно отклоняется с причиной отклонения первого попавшегося отклоненного промиса.

Пример:

// Массив промисов
const promise1 = Promise.resolve(3);
const promise2 = 42; // Не промис, будет рассматриваться как разрешенный промис
const promise3 = new Promise((resolve, reject) => {
  setTimeout(resolve, 100, 'foo');
});

// Использование Promise.all
Promise.all([promise1, promise2, promise3])
  .then((values) => {
    console.log(values); // Выведет: [3, 42, "foo"]
  })
  .catch((error) => {
    console.error(error); // Не будет выполнено в данном случае
  });

Таблица summarizing поведения:

Все промисы разрешены Хотя бы один промис отклонен
Результирующий промис разрешается с массивом результатов Результирующий промис отклоняется с причиной отклонения первого отклоненного промиса

Основное назначение Promise.all — выполнение нескольких асинхронных операций параллельно и ожидание завершения всех из них.