Выбор ответа Middle Асинхронные паттерны обновлено

Promise.any, когда всё упало

Вопрос

Что получит catch, если все промисы в Promise.any отклонились?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: AggregateError со всеми причинами в errors. Promise.any ждёт первый успех.

Варианты ответа

  1. Ошибку первого отклонённого промиса по времени
  2. Ошибку последнего отклонённого промиса в массиве
  3. AggregateError со всеми причинами в errorsправильный ответ
  4. undefined: any никогда не отклоняется

Разбор

Promise.any ждёт первый успех. Если успехов нет, он отклоняется AggregateError, где в массиве errors лежат все причины в порядке промисов.

  • Первую или последнюю ошибку отдают другие комбинаторы: all отдаёт первую по времени.
  • Никогда не отклоняется allSettled, а не any.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме