JavaScript Async
" async and wait သည် ရေးရန်ပိုမိုလွယ်ကူစေမည့် ကတိများပေးသည်"
async သည် လုပ်ဆောင်ချက်တစ်ခုအား Promise ကို ပြန်ပေးသည်။
စောင့်ဆိုင်း ခြင်းသည် ကတိတစ်ခုအတွက် စောင့်ဆိုင်းလုပ်ဆောင်မှုတစ်ခု ပြုလုပ်သည်။
Async Syntax
function တစ်ခုရှေ့တွင် သော့ချက်စကားလုံး async
သည် function ကိုကတိတစ်ခုပြန်ပေးသည်-
ဥပမာ
async function myFunction() {
return "Hello";
}
အတူတူပါပဲ-
function myFunction() {
return Promise.resolve("Hello");
}
ဤသည်မှာ ကတိကို မည်သို့အသုံးပြုရမည်နည်း။
myFunction().then(
function(value) { /* code if successful */ },
function(error) { /* code if some error */ }
);
ဥပမာ
async function myFunction() {
return "Hello";
}
myFunction().then(
function(value) {myDisplayer(value);},
function(error) {myDisplayer(error);}
);
သို့မဟုတ် ပုံမှန်တန်ဖိုး (အမှားတစ်ခုမဟုတ်ဘဲ ပုံမှန်တုံ့ပြန်မှုတစ်ခု) ကို သင်မျှော်လင့်ထားသောကြောင့် ပိုရိုးရှင်းပါသည်။
ဥပမာ
async function myFunction() {
return "Hello";
}
myFunction().then(
function(value) {myDisplayer(value);}
);
Syntax ကို စောင့်ပါ။
function တစ်ခုရှေ့တွင် သော့ချက်စကားလုံး await
သည် function ကိုကတိတစ်ခုစောင့်ဆိုင်းစေသည်-
let value = await promise;
သော့ချက်စကားလုံးကို လုပ်ဆောင်ချက် await
တစ်ခုအတွင်းသာ အသုံးပြုနိုင်သည်
။async
ဥပမာ
အသုံးပြုနည်းကို ဖြည်းဖြည်းချင်း သွားကြည့်ရအောင်။
အခြေခံ Syntax
async function myDisplay() {
let myPromise = new Promise(function(resolve, reject) {
resolve("I love You !!");
});
document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();
အငြင်းအခုံနှစ်ခု (ဖြေရှင်းခြင်းနှင့် ငြင်းပယ်ခြင်း) ကို JavaScript မှ ကြိုတင်သတ်မှတ်ထားသည်။
၎င်းတို့ကို ဖန်တီးမည်မဟုတ်သော်လည်း executor function အဆင်သင့်ဖြစ်သောအခါ ၎င်းတို့ထဲမှ တစ်ခုကို ခေါ်ပါ။
မကြာခဏကျွန်ုပ်တို့သည် reject function ကိုမလိုအပ်ပါ။
ငြင်းပယ်ခြင်းမရှိဘဲ ဥပမာ
async function myDisplay() {
let myPromise = new Promise(function(resolve) {
resolve("I love You !!");
});
document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();
အချိန်ကုန်ရန် စောင့်နေသည်။
async function myDisplay() {
let myPromise = new Promise(function(resolve) {
setTimeout(function() {resolve("I love You !!");}, 3000);
});
document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();
ဖိုင်တစ်ခုကို စောင့်နေသည်။
async function getFile() {
let myPromise = new Promise(function(resolve) {
let req = new XMLHttpRequest();
req.open('GET', "mycar.html");
req.onload = function() {
if (req.status == 200) {
resolve(req.response);
} else {
resolve("File not Found");
}
};
req.send();
});
document.getElementById("demo").innerHTML = await myPromise;
}
getFile();
Browser ပံ့ပိုးမှု
ECMAScript 2017 သည် JavaScript သော့ချက်စာလုံးများ
async
နှင့် await
.
အောက်ပါဇယားသည် နှစ်ခုစလုံးအတွက် အပြည့်အဝပံ့ပိုးမှုဖြင့် ပထမဆုံးဘရောက်ဆာဗားရှင်းကို သတ်မှတ်သည်-
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Dec, 2016 | Apr, 2017 | Mar, 2017 | Sep, 2017 | Dec, 2016 |