Middle
89
questionbank
В чем разница между Promise.all и Promise.any?
AI答案
sobes.tech AI
Promise.all ждет выполнения всех промисов в итерируемом объекте. Если все промисы выполнены успешно, он возвращает промис, который разрешается массивом результатов в том же порядке, что и входные промисы. Если хотя бы один промис отклонен, он возвращает промис, который отклоняется с ошибкой первого отклоненного промиса.
Promise.any ждет выполнения любого из промисов в итерируемом объекте. Как только любой из промисов выполнен успешно, он возвращает промис, который разрешается значением этого промиса. Если все промисы отклонены, он возвращает промис, который отклоняется с ошибкой AggregateError, содержащей массив ошибок всех отклоненных промисов.
Сравнение:
| Критерий | Promise.all | Promise.any |
|---|---|---|
| Условие успеха | Все промисы выполнены успешно | Любой промис выполнен успешно |
| Условие ошибки | Любой промис отклонен | Все промисы отклонены |
| Результат успеха | Массив результатов (в том же порядке, что и входные промисы) | Значение первого успешно выполненного промиса |
| Результат ошибки | Ошибка первого отклоненного промиса | AggregateError с массивом ошибок всех отклоненных промисов |
| Использование | Зависимость от всех асинхронных операций | Зависимость от любой из асинхронных операций |