Promise ķēdes JavaScript
Pieņemsim, ka mums ir šāds promise:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Pēc promise pabeigšanas izvadīsim tā rezultātu konsole:
promise.then(
function(result) {
console.log(result); // izvadīs 'string'
}
)
Tagad nevis uzreiz izvadīsim rezultātu,
bet kaut kā to modificēsim un atgriezīsim caur return:
promise.then(
function(result) {
return result + '!';
}
);
Šajā gadījumā mēs varam uz mūsu then rezultātu
piemērot vēl vienu then, tādējādi izveidojot
ķēdi metožu. Šajā gadījumā
nākamās metodes rezultātā nonāks
tas, ko iepriekšējā atgrieza caur return:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // izvadīs 'string!'
}
);
Tādējādi var izveidot jebkura garuma ķēdi:
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); // izvadīs 'string123'
}
);