⊗jsSpPrmSS 174 of 294 menu

JavaScript တွင် လက်ရှိပုံစံဖြင့် Promises များ

Promise hell ပြဿနာကိုဖြေရှင်းရန် လက်ရှိပုံစံတွင် အလွယ်တကူရေးသားနိုင်သည့် Promises ၏ အထူးဖွဲ့စည်းပုံကို တီထွင်ခဲ့သည် - ၎င်းသည် လက်ရှိပုံစံဖြင့် asynchronous ကုဒ်ကိုရေးသားရန် ခွင့်ပြုပါသည်။

၎င်းကို လေ့လာခြင်းဖြင့် စတင်ကြပါစို့။ အစပိုင်းတွင် ယခင် သင်ခန်းစာမှ ကုဒ်ကိုယူပါမည်။

function func() { getSmth(2).then(res => { console.log(res); // 4 ကိုပြသမည် }); } func();

ကျွန်ုပ်တို့၏ function getSmth သည် synchronous ဖြစ်ခဲ့လျှင် func function ၏ ကုဒ်ကို အောက်ပါအတိုင်း ပြန်ရေးနိုင်မည်ဖြစ်သည်။

function func() { let res = getSmth(2); console.log(res); // 4 ကိုပြသမည် }

သို့သော် getSmth function သည် asynchronous ဖြစ်သောကြောင့် အထက်ဖော်ပြပါ ကုဒ်သည် အလုပ်မလုပ်ပါ။ သို့သော် Promises ၏ လက်ရှိပုံစံကိုအသုံးပြုခြင်းဖြင့် အလားတူအရာတစ်ခုကို ကျွန်ုပ်တို့ရရှိနိုင်သည်။ ဤသို့လုပ်ဆောင်ကြပါစို့။

အစပိုင်းတွင် ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ function func ကို အထူး command async ကိုအသုံးပြု၍ asynchronous အဖြစ် ကြေညာရပါမည်။

async function func() { }

ထို့နောက် func function အတွင်း အထူး command await ကို အသုံးပြုနိုင်မည်ဖြစ်သည်။ Promise ရှေ့တွင်ရေးထားသော ဤ command သည် Promise ပြီးမြောက်သည်အထိ JavaScript ကိုစောင့်ဆိုင်းစေပါမည်။ ထို့နောက် command သည် Promise ၏ရလဒ်ကို ပြန်ပေးပြီး ကုဒ်၏အလုပ်လုပ်ခြင်းကို ဆက်လက်လုပ်ဆောင်ပါမည်။

ကျွန်ုပ်တို့၏အခြေအနေတွင် getSmth ကိုခေါ်ယူခြင်းမပြုမီ await ကိုရေးရပါမည်။ ဤ function ကိုခေါ်ယူခြင်း၏ရလဒ်သည် Promise ဖြစ်သောကြောင့် ကုဒ်၏နောက်ထပ်လုပ်ဆောင်ခြင်းသည် ဤ Promise ပြီးမြောက်ပြီးမှသာ ဆက်လက်လုပ်ဆောင်ပါမည်။ ကောင်းပြီ၊ Promise ၏ရလဒ်ကို variable တစ်ခုထဲသို့ သိမ်းဆည်းနိုင်သည်။ ဖော်ပြထားသည့်အတိုင်း လုပ်ဆောင်ကြပါစို့။

async function func() { let res = await getSmth(2); console.log(res); // 4 ကိုပြသမည် } func();

getSmth ကို အကြိမ်များစွာခေါ်ယူကြပါစို့။

async function func() { let res1 = await getSmth(2); let res2 = await getSmth(3); console.log(res1 + res2); // 13 ကိုပြသမည် } func();

ယခု loop တစ်ခုအတွင်း getSmth ကိုခေါ်ယူကြပါစို့။

async function func() { let arr = [1, 2, 3, 4, 5]; let sum = 0; for (let elem of arr) { sum += await getSmth(elem); } console.log(sum); } func();

အောက်ပါကုဒ်ကို လက်ရှိဖွဲ့စည်းပုံဖြင့် ပြန်ရေးပါ။

function func() { getSmth(2).then(res1 => { getSmth(3).then(res2 => { getSmth(4).then(res3 => { console.log(res1 + res2 + res3); }); }); }); } func();
မြန်မာ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ဝက်ဘ်ဆိုက် လုပ်ဆောင်ခြင်း၊ ဆန်းစစ်လေ့လာခြင်းနှင့် ပုဂ္ဂလိကပြုပြင်ခြင်းအတွက် ကျွန်ုပ်တို့သည် cookie များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်