Promise ahelad JavaScriptis
Oletame, et meil on järgmine promise:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Pärast promise lõppemist kuvame selle tulemi konsooli:
promise.then(
function(result) {
console.log(result); // kuvab 'string'
}
)
Ärgem nüüd kohe tulemit väljastagem,
vaid muudame seda kuidagi ja tagastame läbi return:
promise.then(
function(result) {
return result + '!';
}
);
Sel juhul saame oma then tulemile
rakendada veel ühe then, luues sellega
ahela meetodeid. Samal ajal
järgmise meetodi tulemusse satub
see, mida eelmine tagastas läbi return:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // kuvab 'string!'
}
);
Sel viisil saab ehitada mis tahes pikkusega ahela:
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); // kuvab 'string123'
}
);