Řetězce promis v JavaScriptu
Předpokládejme, že máme následující promis:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Po dokončení promis vypíšeme jeho výsledek do konzole:
promise.then(
function(result) {
console.log(result); // vypíše 'string'
}
)
Nyní výsledek nevypisujme hned, ale nějak jej
změňme a vraťme pomocí return:
promise.then(
function(result) {
return result + '!';
}
);
V tomto případě můžeme na výsledek našeho
then aplikovat další then, čímž vytvoříme
řetězec metod. Přitom do výsledku další metody
se dostane to, co předchozí vrátil pomocí return:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // vypíše 'string!'
}
);
Tímto způsobem lze vytvořit řetězec libovolné délky:
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); // vypíše 'string123'
}
);