Выбор ответа Middle Промисы и async/await обновлено

Первый успешный ответ из нескольких зеркал

Вопрос

Файл доступен на трёх зеркалах. Нужно взять первый успешный ответ, а ошибки быстрых зеркал игнорировать. Какой комбинатор подходит?

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

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

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

Коротко

Правильный ответ: Promise.any. Promise.any выполняется первым успешным результатом и отклоняется с AggregateError, только если упали все.

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

  1. Promise.race
  2. Promise.all
  3. Promise.allSettled
  4. Promise.anyправильный ответ

Разбор

Promise.any выполняется первым успешным результатом и отклоняется с AggregateError, только если упали все. Promise.race берёт первый завершившийся, и если самое быстрое зеркало ответило ошибкой, race отклонится. Promise.all ждёт успеха всех трёх и падает на первой ошибке. allSettled дождётся всех, включая медленные, а нужен первый.

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

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

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