Резолвер промисов

Средняя
76%
JavaScript

Реализуйте функцию any, которая принимает непустой массив промисов и возвращает новый промис, работающий по следующим правилам:

Если хотя бы один промис успешно выполнится (resolve) → возвращаемый промис должен завершиться с тем же значением.

Если все промисы завершатся с ошибкой (reject) → возвращаемый промис должен быть отклонён с ошибкой типа AggregateError, содержащей:

- Массив всех ошибок в поле errors

- Сообщение "No Promise in any was resolved" (другие варианты не допускаются)

Пример 1:

Ввод: promises = [Promise.resolve(42)]

Вывод: [object Promise] => 42

Пример 2:

Ввод: promises = [Promise.reject('A'), Promise.resolve(42)]

Вывод: [object Promise] => 42

Пример 3:

Ввод: promises = [Promise.reject('A'), Promise.reject('B')]

Вывод: [object Promise] => "No Promise in any was resolved"