Назад к задачам
Junior — Senior
6

Самостоятельная реализация метода Promise.all (версия 3)

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Требуется написать функцию, которая воспроизводит поведение стандартного Promise.all. В примере формируется массив чисел, из которых создаются промисы, каждый из которых завершается через задержку, зависящую от индекса. Ваша задача – реализовать promiseAll, принимающую массив промисов и возвращающую новый промис, который выполнится, когда все переданные промисы успешно завершатся, либо отклонится при первой ошибке.


 const test: number[] = Array.from(Array(5), (_, index) => index);

const promises = test.map((item, index) => {
    return new Promise((resolve, reject) => setTimeout(() => resolve(index), index * 100));
});

// promises.push(new Promise((resolve, reject) => reject('MyError')));
const promiseAll = () => {

};

// promiseAll(promises).then(data => console.log(data));