JavaScript හි පොරොමිස් තත්වයන්
පොරොමිසයක් තත්ව තුනෙන් එකක පවතියි. පොරොමිසය සෑදීමේදී එය ඉල්ලුම් ඇති තත්වයෙන් (pending) පවතී, ඉන්පසු එය සම්පූර්ණ කරන ලද (fulfilled) තත්වයට පත්වී ප්රතිඵලය ලබා දිය හැකිය, නැතහොත් ප්රතික්ෂේප කරන ලද (rejected) තත්වයට පත්වී ප්රතික්ෂේප කිරීමේ හේතුව ලබා දිය හැකිය. පහත කේතය දිගටම කරගෙන යාමෙන් ඔබට එක් තත්වයකින් තවත් තත්වයකට මාරුවීම නරඹාගත හැකිය:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false; // කිසිවක් true හෝ false සකසන්න
if (!isError) {
resolve([1, 2, 3, 4, 5]);
} else {
reject('error in promise');
}
}, 3000);
});
setInterval(function() {
console.log(promise); // තත්පරයකට වරක් පොරොමිසය කොන්සෝලයට ප්රතිදානය කරන්න
}, 1000);
fulfilled සහ rejected යන තත්වයන් නොවෙනස් බව සලකන්න: පොරොමිසයක් මෙම තත්ව වලින් එකකට මාරු වුවහොත්, එය තවත් වෙනත් තත්වයකට මාරු විය නොහැකිය. උදාහරණයක් බලමු. පහත කේතයේ reject කැඳවීම පළමුව සිදුවන නිසා resolve කැඳවීම නොසලකා හරිනු ලැබේ:
let promise = new Promise(function(resolve, reject) {
setTimeout(() => reject(new Error('error')), 1000);
setTimeout(() => resolve('ignored'), 2000);
});
කිසියම් කාලයකින් සාර්ථකව සම්පූර්ණ වන පොරොමිසයක් සාදන්න. එය කොන්සෝලයට ප්රතිදානය කර එහි ආරම්භක තත්වය සහ සම්පූර්ණ කරන ලද තත්වය අධ්යයනය කරන්න.
කිසියම් කාලයකින් අසාර්ථකව සම්පූර්ණ වන පොරොමිසයක් සාදන්න. එය කොන්සෝලයට ප්රතිදානය කර එහි ආරම්භක තත්වය සහ සම්පූර්ණ කරන ලද තත්වය අධ්යයනය කරන්න.