Пусть у нас есть следующий промис:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
По завершению промиса выведем его результат в консоль:
promise.then(
function(result) {
console.log(result); // выведет 'string'
}
)
Давайте теперь не будем сразу выводить результат,
а как-то изменим его и вернем через return
:
promise.then(
function(result) {
return result + '!';
}
);
В этом случае мы можем к результату нашего
then
применить еще один then
, создав тем
самым цепочку методов. При этом в
результат следующего метода будет попадать
то, что вернул через return
предыдущий:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // выведет 'string!'
}
);
Таким образом можно построить цепочку какой-угодно длины:
promise.then(
function(result) {
return result + '1';
}
).then(
function(result) {
return result + '2';
}
).then(
function(result) {
return result + '3';
}
).then(
function(result) {
console.log(result); // выведет 'string123'
}
);