JavaScript හි ප්රතිඥා දාම
අපට පහත ප්රතිඥාව ඇතැයි සිතමු:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
ප්රතිඥාව සම්පූර්ණ වූ පසු එහි ප්රතිඵලය කොන්සෝලයට පිටතට දමමු:
promise.then(
function(result) {
console.log(result); // 'string' ප්රතිදානය කරයි
}
)
දැන් අපි ප්රතිඵලය වහාම ප්රතිදානය කිරීම නතර කර
එය යම් ආකාරයකින් වෙනස් කර return හරහා ආපසු යවමු:
promise.then(
function(result) {
return result + '!';
}
);
මෙම අවස්ථාවේ දී, අපට අපගේ
then හි ප්රතිඵලයට තවත් එක් then එකක් යොදා ගත හැකි අතර එමගින්
දාම ක්රම ඇති කරයි. මෙහිදී
පසු ක්රමයට ප්රතිඵලය ලෙස ලැබෙනුයේ
පෙර ක්රමය return හරහා ආපසු යැව්වේ මොනවාද යන්නයි:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // 'string!' ප්රතිදානය කරයි
}
);
මේ ආකාරයෙන් ඕනෑම දිගකින් යුත් දාමයක් ගොඩනගා ගත හැකිය:
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' ප්රතිදානය කරයි
}
);