Promise grandinės JavaScript
Tarkime, kad turime šį promise:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Pasibaigus promise, išvesime jo rezultatą į konsolę:
promise.then(
function(result) {
console.log(result); // išves 'string'
}
)
Dabar ne iš karto išvesime rezultatą,
o kažkaip jį pakeisime ir grąžinsime per return:
promise.then(
function(result) {
return result + '!';
}
);
Šiuo atveju galime prie mūsų
then rezultato pritaikyti dar vieną then, taip
sukurdami grandinę metodų. Tuo pačiu į
kito metodo rezultatą pateks
tai, ką per return grąžino ankstesnis:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // išves 'string!'
}
);
Taigi galima sukurti bet kokio ilgio grandinę:
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); // išves 'string123'
}
);