Ланци промиса у JavaScript-у
Претпоставимо да имамо следећи промис:
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'
}
);