JavaScript ရှိ Promise များအတွင်း ချွင်းချက်ဖြစ်ရပ်များ
ယခု Promise တစ်ခုအတွင်းဖြစ်ပွားသော ချွင်းချက်ဖြစ်ရပ်များကို မည်သို့ကိုင်တွယ်ရမည်ကို သင်ယူကြပါစို့။ ထိုသို့ဖြစ်ရပ်တစ်ခု ပေါ်ပေါက်လာပါက ကျွန်ုပ်တို့သည် Promise ၏ ဒုတိယ parameter အဖြစ် အလိုအလျောက်ရောက်ရှိလာသော အထူးပြုငြင်းပယ်ခြင်းလုပ်ဆောင်ချက်ကို အသုံးပြု၍ Promise ကို ငြင်းပယ်ရမည်။
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
...
}, 3000);
});
Promise function အတွင်းတွင် အရာအားလုံးပုံမှန်ဖြစ်ပါက resolve ကိုခေါ်ရမည်၊ သို့မဟုတ်
ချွင်းချက်ဖြစ်ရပ်ပေါ်ပေါက်ပါက reject ကိုခေါ်ရမည်။
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false;
if (!isError) {
resolve([1, 2, 3, 4, 5]); // promise ၏ဒေတာ
} else {
reject('promise အတွင်းအမှား'); // သင့်အမှားစာသား
}
}, 3000);
});
ထို့နောက် then method တွင် parameter အဖြစ် function တစ်ခုမကဘဲ function နှစ်ခုကို ပေးပို့ရမည်။
ပထမ function သည် Promise ပုံမှန်အလုပ်လုပ်ပါက (resolved ဖြစ်ပါက) အလုပ်လုပ်မည်၊
ဒုတိယ function သည် အမှားဖြင့်အလုပ်လုပ်ပါက (rejected ဖြစ်ပါက) အလုပ်လုပ်မည်။
promise.then(
function(result) {
console.log(result); // promise ၏ရလဒ်ကို ထုတ်ပြမည်
},
function(error) {
console.log(error); // အမှားစာသားကို ထုတ်ပြမည်
}
);
အထက်ပါကုဒ်ကို ယေဘုယျအားဖြင့် ဤကဲ့သို့ ပိုမိုတိုတောင်းစွာ ရေးသားကြသည်။
promise.then(function(result) {
console.log(result); // promise ၏ရလဒ်ကို ထုတ်ပြမည်
}, function(error) {
console.log(error); // အမှားစာသားကို ထုတ်ပြမည်
});
0 မှ 5 အထိ ကျပန်းဂဏန်းများ ထုတ်လုပ်မည့် အလိုအလျောက် (asynchronous) ကုဒ်တစ်ခုကို ဖန်တီးပါ။
၎င်းအားလုံးကို Promise တစ်ခုဖြင့် ထုပ်ပိုးပါ။ Promise သည် ၎င်း၏ရလဒ်အဖြစ် တစ်ကို ထုတ်လုပ်ထားသောဂဏန်းဖြင့် စားခြင်း၏ရလဒ်ကို ပြန်ပေးပါစေ။
သုညဖြင့်စားခြင်းဖြစ်ပါက Promise သည် အမှားဖြင့် ပြီးဆုံးပါစေ၊ ကျန်အခြေအနေအားလုံးတွင် အောင်မြင်စွာ ပြီးဆုံးပါစေ။