Написал функцию, которая принимает массив промисов и возвращает первый завершившийся. Promise.race нельзя использовать
function promiseRace(promises) {
let arr = [];
for (let elem of promises) {
elem
.then(() => {
arr.push(elem)
})
.catch(
console.error()
)
}
return arr[0]; //ожидаю Promise {<fulfilled>: 100}. а получаю undefined
}
подскажите, почему не проходят два условия:
1. возвращать результат первого выполнившегося промиса
2. должна прокидывать ошибку
const firstPromise = new Promise((resolve) =>
setTimeout(() => resolve(300), 300)
);
const secondPromise = new Promise((resolve) =>
setTimeout(() => resolve(200), 200)
);
const thirdPromise = new Promise((resolve) =>
setTimeout(() => resolve(100), 100)
);
promiseRace([firstPromise, secondPromise, thirdPromise]); // должен вернуть первый выполнившийся промис