Код Middle Реализация с нуля обновлено

Promise.any

Условие

Реализуй Promise.any: первый успешный результат; если все отклонены - отклонение с AggregateError-подобным объектом {errors}.

Что проверяют тесты

  • первый успех

  • все упали

  • пустой массив отклоняется

Как подойти

Инверсия all: resolve передаём напрямую первым же успехом, счётчик считает отказы. Пустой вход - немедленный reject (у all наоборот, немедленный resolve).

Подсказки: 2
  1. Зеркало Promise.all: успех резолвит сразу, ошибки копятся.
  2. Ошибки собирай по индексу, чтобы порядок совпадал с входом.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.