Promise-Ketten in JavaScript
Nehmen wir an, wir haben das folgende Promise:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Nach Abschluss des Promises geben wir sein Ergebnis in der Konsole aus:
promise.then(
function(result) {
console.log(result); // gibt 'string' aus
}
)
Lassen Sie uns das Ergebnis nun nicht sofort ausgeben,
sondern es irgendwie ändern und über return zurückgeben:
promise.then(
function(result) {
return result + '!';
}
);
In diesem Fall können wir auf das Ergebnis unseres
then ein weiteres then anwenden und so
eine Kette von Methoden erstellen. Dabei gelangt
in das Ergebnis der nächsten Methode das,
was das vorherige über return zurückgegeben hat:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // gibt 'string!' aus
}
);
Auf diese Weise kann eine Kette beliebiger Länge aufgebaut werden:
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); // gibt 'string123' aus
}
);