JavaScript-da Promise Zanjirlari
Faraz qilaylik, bizda quyidagi promise mavjud:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Promise tugagach, uning natijasini konsolga chiqaramiz:
promise.then(
function(result) {
console.log(result); // 'string' ni chiqaradi
}
)
Keling, endi natijani darhol chiqarish o'rniga,
uni o'zgartiramiz va return orqali qaytaramiz:
promise.then(
function(result) {
return result + '!';
}
);
Bunday holatda, biz o'zimizning then
natijamizga yana boshqa then ni qo'llashimiz
mumkin, shu tariqa zanjir metodlarini yaratgan
bo'lamiz. Bunda keyingi metodga oldingi metod
return orqali qaytgan narsa tushadi:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // 'string!' ni chiqaradi
}
);
Shu tarzda istalgan uzunlikdagi zanjirni qura olamiz:
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); // 'string123' ni chiqaradi
}
);