Показать сообщение отдельно
  #1 (permalink)  
Старый 01.08.2017, 20:47
Аватар для Spirtikys
Аспирант
Отправить личное сообщение для Spirtikys Посмотреть профиль Найти все сообщения от Spirtikys
 
Регистрация: 30.12.2015
Сообщений: 49

Чейнинг promise через array.reduce
Привет.
Не могу понять поведения при чейнинге через reduce. Картина такая
function f(number, x) {
    return new Promise(resolve => {
        setTimeout(() => {
            console.log(number);
            resolve(number);
        }, x)
    });
}

const answer = [f(1, 1000), f(2, 3000), f(3, 2000)]
    .reduce((previousValue, currentValue) => previousValue.then(currentValue));

answer.then(() => console.log('last'));


По моей логике, reduce должен был вернуть promise который я мог бы дальше чейнить, но на итоге, 1 чейн прицепленный к результату reduce вызываеться одновременно с 1 promise. Почему такое поведение?

Последний раз редактировалось Spirtikys, 01.08.2017 в 22:00.
Ответить с цитированием