Chaînes de promesses en JavaScript
Supposons que nous ayons la promesse suivante :
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Une fois la promesse terminée, affichons son résultat dans la console :
promise.then(
function(result) {
console.log(result); // affichera 'string'
}
)
Maintenant, ne affichons pas immédiatement le résultat,
mais modifions-le d'une certaine manière et renvoyons-le via return :
promise.then(
function(result) {
return result + '!';
}
);
Dans ce cas, nous pouvons appliquer un autre then
au résultat de notre then, créant ainsi
une chaîne de méthodes. De plus,
le résultat de la méthode suivante recevra
ce qui a été renvoyé via return par la précédente :
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // affichera 'string!'
}
);
Ainsi, il est possible de construire une chaîne de n'importe quelle longueur :
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); // affichera 'string123'
}
);