AggregateError
Несколько ошибок в одной — её выбрасывает Promise.any.
Доступно с: ES2021
Синтаксис
new AggregateError(errors, message)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| errors | Iterable | Список ошибок. |
| message | string | Необязательный. Общее описание. |
Возвращаемое значение
AggregateErrorОшибка со свойством errors — массивом вложенных ошибок.
Примеры
Все промисы отклонены:
try {
await Promise.any([
Promise.reject(new Error('Server A down')),
Promise.reject(new Error('Server B down')),
]);
} catch (error) {
console.log(error.name);
console.log(error.errors.map((e) => e.message).join(', '));
}Результат:
AggregateError
Server A down, Server B downПримечания
Удобно и для своей валидации: собрать все ошибки формы и выбросить их вместе одной ошибкой.
См. также
- Promise.any — Возвращает первый успешный результат, ошибки пропускает.
- Error — Базовый класс ошибок: создаётся и выбрасывается через throw.
В учебнике
- Несколько промисов сразу — Promise.all, Promise.allSettled, Promise.race и Promise.any в JavaScript: как ждать несколько асинхронных действий одновременно.