JavaScript တွင် Promise အုပ်စုများနှင့် အလုပ်လုပ်ခြင်း

ယခုတစ်ချိန်တွင် Promise အုပ်စုများနှင့် အလုပ်လုပ်နိုင်စေမည့် အသုံးဝင်သော method နှစ်မျိုးကို ရှင်းပြသွားမည်။ Promise.all method သည် ၎င်းထံ array ပုံစံဖြင့် ပေးပို့ထားသော Promise အားလုံး ပြီးဆုံးချိန်တွင် code ကို လုပ်ဆောင်ခွင့်ပြုပြီး Promise.race method ကမူ array မှ ပထမဆုံး Promise ပြီးဆုံးမှုကို စောင့်ဆိုင်းကာ အခြား Promise များကို စွန့်ပစ်လိုက်သည်။

Method နှစ်ခုစလုံးသည် ၎င်းတို့၏ ရလဒ်အဖြစ် Promise အသစ်တစ်ခုကို ပြန်ပေးသည်။ Promise.all method အတွက် ထို Promise ၏ ရလဒ်သည် ပေးပို့ထားသည့် Promise အားလုံး၏ ရလဒ်များ ပါဝင်သော array (ရလဒ်များ၏ အစီအစဥ်သည် array အတွင်းရှိ Promise များ၏ အစီအစဥ်နှင့် ကိုက်ညီသည်) ဖြစ်ပြီး Promise.race အတွက်မူ ပထမဆုံးအလုပ်လုပ်သွားသော Promise ၏ ရလဒ် ဖြစ်သည်။

လက်တွေ့တွင် ကြည့်ကြရအောင်။ ကျွန်ုပ်တို့တွင် Promise အုပ်စုတစ်ခု ရှိတယ်ဆိုပါစို့။

javascriptlet promises = [
  new Promise(resolve => setTimeout(() => resolve(1), 1000)),
  new Promise(resolve => setTimeout(() => resolve(2), 2000)),
  new Promise(resolve => setTimeout(() => resolve(3), 3000)),
];

Promise.all ကို အသုံးပြု၍ ကျွန်ုပ်တို့၏ အုပ်စုထဲမှ Promise အားလုံး၏ ပြီးဆုံးမှုကို စောင့်ကြည့်ကြပါစို့။

javascriptPromise.all(promises).then(function(res) {
  console.log(res); // [1, 2, 3] ကို ပြသမည် - Promise အားလုံး၏ ရလဒ်များ
});

ယခုတစ်ခါမှာတော့ Promise.race ကို အသုံးပြု၍ အုပ်စုထဲမှ ပထမဆုံး Promise ၏ ပြီးဆုံးမှုကို စောင့်ကြည့်ကြပါစို့။

javascriptPromise.race(promises).then(function(res) {
  console.log(res); // 1 ကို ပြသမည် - ပထမဆုံး အလုပ်လုပ်သွားသော Promise ၏ ရလဒ်
});

Array ထဲရှိ Promise တစ်ခုခု ပယ်ချခံရပါက (rejected) ရလဒ် Promise သည် ချက်ချင်းပင် rejected အခြေအနေသို့ ပြောင်းသွားမည်။ ထို့ကြောင့် ပေါ်ပေါက်လာသော အထူးအခြေအနေ (exception) ကို သင်ယခင်က လေ့လာခဲ့သည့် ပုံမှန်နည်းလမ်းဖြင့် ဖမ်းယူနိုင်သည်၊ ဥပမာအားဖြင့် catch ကို အသုံးပြု၍။

javascriptPromise.all(promises).then(function(res) {
  console.log(res);
}).catch(function(err) {
  console.log(err);
});
Задание 1

�ထဲတွင် စက္ကန့် 1 မှ 10 အထိ ကျပန်း နှောင့်နှေးချိန် တစ်ခု သတ်မှတ်ထားပြီး Promise တစ်ခု ပြန်ပေးသည့် function တစ်ခုကို ပြုလုပ်ပါ။ Promise သည် ၎င်း၏ရလဒ်အဖြစ် ထို နှောင့်နှေးချိန်ကို ပြန်ပေးပါစေ။ သင့် function နှင့် loop ကို အသုံးပြု၍ array ထဲကို Promise ပေါင်း 10 ခုဖြင့် ဖြည့်ပါ။

Задание 2

ယခင် ပြဿနာမှ ရရှိသော Promise အုပ်စုကို အသုံးပြု၍ ပထမဆုံး အလုပ်လုပ်သွားသော Promise ၏ ရလဒ်ကို console တွင် ပြသရန် ပြုလုပ်ပါ။

Задание 3

ယခင် ပြဿနာမှ ရရှိသော Promise အုပ်စုကို အသုံးပြု၍ Promise အားလုံး၏ ရလဒ်များ ပေါင်းလဒ်ကို console တွင် ပြသရန် ပြုလုပ်ပါ။