JavaScript-də Promise Zəncirləri
Tutaq ki, bizim aşağıdakı promise-miz var:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Promise bitdikdə onun nəticəsini konsola çıxaraq:
promise.then(
function(result) {
console.log(result); // 'string' çıxardacaq
}
)
Gəlin indi nəticəni dərhal çıxarmayaq,
onu bir şəkildə dəyişdirək və return ilə qaytaraq:
promise.then(
function(result) {
return result + '!';
}
);
Bu halda biz öz then-imizin nəticəsinə
başqa bir then tətbiq edə bilərik, beləliklə
zəncir metodu yaradırıq. Bununla
növbəti metodun nəticəsinə
əvvəlkinin return ilə qaytardığı daxil olacaq:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // 'string!' çıxardacaq
}
);
Beləliklə, istənilən uzunluqda zəncir qura bilərsiniz:
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' çıxardacaq
}
);