Back to questions
Junior — Middle
93
В чем различие между функциями Promise.all и Promise.any при обработке промисов?
Answer from AI
sobes.tech AI
Promise.all принимает массив промисов и возвращает новый промис, который:
- резолвится, когда все промисы из массива успешно завершены, возвращая массив результатов в том же порядке;
- реджектится, если хотя бы один из промисов отклонён, сразу же с ошибкой этого промиса.
Promise.any принимает массив промисов и возвращает промис, который:
- резолвится, как только любой один из промисов успешно завершится, возвращая результат этого промиса;
- реджектится, если все промисы отклонены, возвращая AggregateError с ошибками всех промисов.
Пример:
const p1 = Promise.reject('Ошибка 1');
const p2 = Promise.resolve('Успех 2');
const p3 = Promise.resolve('Успех 3');
Promise.all([p1, p2, p3])
.then(console.log) // не вызовется
.catch(console.error); // выведет 'Ошибка 1'
Promise.any([p1, p2, p3])
.then(console.log) // выведет 'Успех 2'
.catch(console.error);