lovebarcafc
@lovebarcafc
Кратко не получится

Каким образом в цепочке промисов передаётся значение?

Читаю учебник Ильи Кантора. Застрял на промисах. Не могу понять этот пример цепочки промисов:
new Promise(function(resolve, reject) {

  setTimeout(() => resolve(1), 1000); // (*)

}).then(function(result) { // (**)

  alert(result); // 1
  return result * 2;

}).then(function(result) { // (***)

  alert(result); // 2
  return result * 2;

}).then(function(result) {

  alert(result); // 4
  return result * 2;

});


Каким образом
return result * 2;
передаёт значение в следующий обработчик?
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
@historydev Куратор тега JavaScript
Острая аллергия на анимешников
// then это дословно - дальше, изначально мы возвращаем 1 
setTimeout(() => resolve(1), 1000); 

// 1 это результат промиса, с помощью then мы продолжаем манипуляции с вернувшим промисом значением
.then(function(result) { // (**)

  alert(result); // 1 - результат промиса
  return result * 2; // умножаем его на 2 и возвращаем, теперь 2 результат текущей обработки, следующим then мы уже получим 2 где проводим с ним аналогичные действия.

})
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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