Promise-kjeder i JavaScript
La oss si at vi har følgende promise:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Ved fullføring av promise, skal vi vise resultatet i konsollen:
promise.then(
function(result) {
console.log(result); // vil vise 'string'
}
)
La oss nå ikke vise resultatet umiddelbart,
men endre det på en måte og returnere det via return:
promise.then(
function(result) {
return result + '!';
}
);
I dette tilfellet kan vi bruke enda en then på resultatet av vår
then, og dermed skape en kjede av metoder. Samtidig vil
resultatet av den forrige, returnert via return,
komme inn i den neste metoden:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // vil vise 'string!'
}
);
På denne måten kan man bygge en kjede av vilkårlig lengde:
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); // vil vise 'string123'
}
);