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 — выполнение нескольких асинхронных операций параллельно и ожидание завершения всех из них.