Promise.allSettled
Ждёт завершения всех промисов и сообщает результат каждого — успех или ошибку.
Доступно с: ES2020
Синтаксис
Promise.allSettled(promises)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| promises | Iterable | Массив промисов. |
Возвращаемое значение
PromiseПромис массива объектов status и value (или reason).
Примеры
Результаты вместе с ошибками:
const results = await Promise.allSettled([
Promise.resolve('ok'),
Promise.reject(new Error('Failed')),
]);
for (const result of results) {
console.log(result.status, result.value ?? result.reason.message);
}Результат:
fulfilled ok
rejected FailedТолько успешные значения:
const results = await Promise.allSettled([Promise.resolve(1), Promise.reject(new Error('x')), Promise.resolve(3)]);
const values = results.filter((r) => r.status === 'fulfilled').map((r) => r.value);
console.log(values.join(', '));Результат:
1, 3Примечания
Никогда не отклоняется: каждая ошибка просто попадает в свой объект со статусом rejected.
См. также
- Promise.all — Ждёт выполнения всех промисов параллельно.
- Promise.any — Возвращает первый успешный результат, ошибки пропускает.
Вопросы и ответы по теме
В учебнике
- Несколько промисов сразу — Promise.all, Promise.allSettled, Promise.race и Promise.any в JavaScript: как ждать несколько асинхронных действий одновременно.