Promise láncok a JavaScriptben
Tegyük fel, hogy a következő promiseunk van:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
A promise befejezése után írjuk ki az eredményét a konzolra:
promise.then(
function(result) {
console.log(result); // kiírja 'string'
}
)
Most ne azonnal írjuk ki az eredményt,
hanem módosítsuk valahogy és adjuk vissza a return segítségével:
promise.then(
function(result) {
return result + '!';
}
);
Ebben az esetben az eredményünkhöz
alkalmazhatunk még egy then metódust, ezzel
létrehozva egy láncot a metódusokból. Eközben
a következő metódus eredményébe az kerül,
amit az előző return segítségével visszaadott:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // kiírja 'string!'
}
);
Így tetszőleges hosszúságú lánc építhető:
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); // kiírja 'string123'
}
);