Кастомный Promise.all (Custom Promise.all)

3

JavaScript

Асинхронность

Т-Банк

Условие:

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

  • резолвится массивом результатов, когда все переданные промисы успешно выполнились, при этом порядок результатов соответствует порядку входного массива, независимо от порядка завершения промисов;

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

Если входной массив пуст — немедленно резолвитесь пустым массивом.

Нельзя использовать встроенный Promise.all.

Входные данные:
promises — массив промисов (может быть пустым)

Выходные данные:
Промис, который резолвится в Array результатов или реджектится с ошибкой.

Ограничения:

  • 0 <= promises.length <= 1000

  • Каждый элемент массива является промисом

  • Промисы могут резолвиться в любом порядке и с задержкой

Пример:

Вход: [Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)]Выход: [1, 2, 3]
Вход: [Promise.resolve(1), Promise.reject("error"), Promise.resolve(3)]Выход: реджект с "error"
Вход: []Выход: []
Loading...