Promise.any
Возвращает первый успешный результат, ошибки пропускает.
Доступно с: ES2021
Синтаксис
Promise.any(promises)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| promises | Iterable | Массив промисов. |
Возвращаемое значение
PromiseПромис с первым успешным результатом или AggregateError, если все отклонены.
Примеры
Первый успешный ответ:
const result = await Promise.any([
Promise.reject(new Error('Mirror 1 down')),
new Promise((resolve) => setTimeout(() => resolve('Mirror 2'), 50)),
new Promise((resolve) => setTimeout(() => resolve('Mirror 3'), 100)),
]);
console.log(result);Результат:
Mirror 2Примечания
В отличие от Promise.race(), ошибка не завершает ожидание. Только если отклонены все промисы, выбрасывается AggregateError со списком ошибок в свойстве errors.
См. также
- Promise.race — Возвращает результат первого завершившегося промиса — успешного или нет.
- AggregateError — Несколько ошибок в одной — её выбрасывает Promise.any.
- Promise.all — Ждёт выполнения всех промисов параллельно.
В учебнике
- Несколько промисов сразу — Promise.all, Promise.allSettled, Promise.race и Promise.any в JavaScript: как ждать несколько асинхронных действий одновременно.