Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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.
Ответить с цитированием
  #2 (permalink)  
Старый 01.08.2017, 21:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

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

Сообщение от рони Посмотреть сообщение
Spirtikys,
а вместо картинки, разместить код никак?
Заменил.
Но с проблемой разобрался, возможно перегрелся. Я передавал в чейнинг promise, в то время как then принимает function, итог -> это все проваливалось и попросту отрабатывало по таймингу
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
eMail через JS konstantinopol Общие вопросы Javascript 15 12.01.2015 10:06
Сайт торент видео онлайн (через браузер). nemo84 Ваши сайты и скрипты 1 18.05.2013 21:07
как посмотреть что было добавлено через javascript Telnet Internet Explorer 2 26.03.2013 22:07
Как правильно загрузить через framework Mateus jQuery 5 11.01.2013 20:08
XMLHTTPRequest передача имя через POST dds AJAX и COMET 0 14.08.2008 14:44