JavaScript ရှိ Promise များအတွင်း ချွင်းချက်ဖြစ်ရပ်များ

ယခု Promise တစ်ခုအတွင်းဖြစ်ပွားသော ချွင်းချက်ဖြစ်ရပ်များကို မည်သို့ကိုင်တွယ်ရမည်ကို သင်ယူကြပါစို့။ ထိုသို့ဖြစ်ရပ်တစ်ခု ပေါ်ပေါက်လာပါက ကျွန်ုပ်တို့သည် Promise ၏ ဒုတိယ parameter အဖြစ် အလိုအလျောက်ရောက်ရှိလာသော အထူးပြုငြင်းပယ်ခြင်းလုပ်ဆောင်ချက်ကို အသုံးပြု၍ Promise ကို ငြင်းပယ်ရမည်။

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    ...
  }, 3000);
});

Promise function အတွင်းတွင် အရာအားလုံးပုံမှန်ဖြစ်ပါက resolve ကိုခေါ်ရမည်၊ သို့မဟုတ် ချွင်းချက်ဖြစ်ရပ်ပေါ်ပေါက်ပါက reject ကိုခေါ်ရမည်။

javascriptlet 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 ဖြစ်ပါက) အလုပ်လုပ်မည်။

javascriptpromise.then(
  function(result) {
    console.log(result); // promise ၏ရလဒ်ကို ထုတ်ပြမည်
  },
  function(error) {
    console.log(error);  // အမှားစာသားကို ထုတ်ပြမည်
  }
);

အထက်ပါကုဒ်ကို ယေဘုယျအားဖြင့် ဤကဲ့သို့ ပိုမိုတိုတောင်းစွာ ရေးသားကြသည်။

javascriptpromise.then(function(result) {
  console.log(result); // promise ၏ရလဒ်ကို ထုတ်ပြမည်
}, function(error) {
  console.log(error);  // အမှားစာသားကို ထုတ်ပြမည်
});
Задание 1

0 မှ 5 အထိ ကျပန်းဂဏန်းများ ထုတ်လုပ်မည့် အလိုအလျောက် (asynchronous) ကုဒ်တစ်ခုကို ဖန်တီးပါ။ ၎င်းအားလုံးကို Promise တစ်ခုဖြင့် ထုပ်ပိုးပါ။ Promise သည် ၎င်း၏ရလဒ်အဖြစ် တစ်ကို ထုတ်လုပ်ထားသောဂဏန်းဖြင့် စားခြင်း၏ရလဒ်ကို ပြန်ပေးပါစေ။ သုညဖြင့်စားခြင်းဖြစ်ပါက Promise သည် အမှားဖြင့် ပြီးဆုံးပါစေ၊ ကျန်အခြေအနေအားလုံးတွင် အောင်မြင်စွာ ပြီးဆုံးပါစေ။