Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Чейнинг promise через array.reduce (https://javascript.ru/forum/misc/69990-chejjning-promise-cherez-array-reduce.html)

Spirtikys 01.08.2017 20:47

Чейнинг 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. Почему такое поведение?:help:

рони 01.08.2017 21:55

Spirtikys,
а вместо картинки, разместить код никак?

Spirtikys 01.08.2017 21:59

Цитата:

Сообщение от рони (Сообщение 460332)
Spirtikys,
а вместо картинки, разместить код никак?

Заменил.
Но с проблемой разобрался, возможно перегрелся. Я передавал в чейнинг promise, в то время как then принимает function, итог -> это все проваливалось и попросту отрабатывало по таймингу :)


Часовой пояс GMT +3, время: 17:14.