Lanac promisa u JavaScript
Neka imamo sledeći promis:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Po završetku promisa, ispisaćemo njegov rezultat u konzolu:
promise.then(
function(result) {
console.log(result); // ispisaće 'string'
}
)
Sada, umesto da odmah ispisujemo rezultat,
hajde da ga izmenimo i vratimo pomoću return:
promise.then(
function(result) {
return result + '!';
}
);
U ovom slučaju možemo na rezultat našeg
then primeniti još jedan then, time
stvarajući lanac metoda. Pritom, u
rezultat sledećeg metoda će stizati
ono što je prethodni vratio putem return:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // ispisaće 'string!'
}
);
Na ovaj način možemo izgraditi lanac bilo koje dužine:
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); // ispisaće 'string123'
}
);