Кастомный Promise.all (Custom Promise.all)
3
Асинхронность
Условие:
Реализуйте функцию 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"
Вход: []Выход: []