@taipan90

Почему функция не возвращает нужный результат?

Написал функцию, которая принимает массив промисов и возвращает первый завершившийся. 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]); // должен вернуть первый выполнившийся промис
  • Вопрос задан
  • 186 просмотров
Решения вопроса 1
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@xenonhammer
const firstPromise = new Promise((resolve, reject) =>
if(false) return reject
setTimeout(() => resolve(300), 300)

);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы