Promise kettingen in JavaScript
Stel we hebben de volgende promise:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Laten we het resultaat van de promise na voltooiing in de console uitvoeren:
promise.then(
function(result) {
console.log(result); // geeft 'string' weer
}
)
Laten we het resultaat nu niet direct uitvoeren,
maar het op een of andere manier aanpassen en terugsturen via return:
promise.then(
function(result) {
return result + '!';
}
);
In dit geval kunnen we het resultaat van onze
then nog een then toepassen, en zo
een ketting van methoden creëren. Hierbij
komt in het resultaat van de volgende methode
terug wat de vorige via return heeft teruggegeven:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // geeft 'string!' weer
}
);
Op deze manier kan een ketting van elke gewenste lengte worden opgebouwd:
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); // geeft 'string123' weer
}
);