JavaScript'te Zincirleme Promise'ler
Diyelim ki aşağıdaki promise'imiz var:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Promise tamamlandığında, sonucunu konsola yazdıralım:
promise.then(
function(result) {
console.log(result); // 'string' yazdıracak
}
)
Şimdi sonucu hemen yazdırmak yerine, onu bir şekilde
değiştirip return ile geri döndürelim:
promise.then(
function(result) {
return result + '!';
}
);
Bu durumda, then metodumuzun sonucuna başka bir
then uygulayabilir, böylece bir zincir
metotlar oluşturabiliriz. Bu durumda, bir sonraki
metoda, bir öncekinin return ile döndürdüğü
sonuç geçer:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // 'string!' yazdıracak
}
);
Böylece istediğiniz uzunlukta bir zincir oluşturulabilir:
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' yazdıracak
}
);