Verige promisov v JavaScriptu
Recimo, da imamo naslednji promis:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Po zaključku promisa izpišimo njegov rezultat v konzolo:
promise.then(
function(result) {
console.log(result); // bo izpisal 'string'
}
)
Zdaj pa ne izpišimo rezultata takoj,
ampak ga nekako spremenimo in vrnimo prek return:
promise.then(
function(result) {
return result + '!';
}
);
V tem primeru lahko na rezultat našega
then uporabimo še en then, s čimer
ustvarimo verigo metod. Pri tem bo v
rezultat naslednje metode prišlo
tisto, kar je prejšnja vrnila prek return:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // bo izpisal 'string!'
}
);
Na ta način je mogoče zgraditi verigo poljubne dolž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); // bo izpisal 'string123'
}
);