Rantai Promise dalam JavaScript
Katakan kita mempunyai promise berikut:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Selepas promise selesai, mari kita output hasilnya ke konsol:
promise.then(
function(result) {
console.log(result); // akan output 'string'
}
)
Sekarang, jangan terus output hasilnya,
tapi ubah suainya dan kembalikan melalui return:
promise.then(
function(result) {
return result + '!';
}
);
Dalam kes ini, kita boleh gunakan then sekali lagi
pada hasil then kita, dengan itu mencipta
rantai kaedah. Hasil kaedah seterusnya
akan menerima apa yang dikembalikan oleh
return sebelumnya:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // akan output 'string!'
}
);
Dengan cara ini, rantai sepanjang mana pun boleh dibina:
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); // akan output 'string123'
}
);