JS ကျူတိုရီရယ်

JS ပင်မ JS မိတ်ဆက် JS ဘယ်သွားမလဲ။ JS Output JS ထုတ်ပြန်ချက် JS Syntax JS မှတ်ချက်များ JS အပြောင်းအလဲများ JS Let JS Const JS အော်ပရေတာများ JS ဂဏန်းသင်္ချာ JS တာဝန် JS ဒေတာအမျိုးအစားများ JS လုပ်ဆောင်ချက်များ JS အရာဝတ္ထုများ JS ပွဲများ JS စာတန်းများ JS စာတန်းနည်းလမ်းများ JS စာတန်းရှာဖွေမှု JS String Templates JS နံပါတ်များ JS နံပါတ်နည်းလမ်းများ JS Arrays JS Array Methods JS Array အမျိုးအစား JS Array Iteration JS Array Const JS ရက်စွဲများ JS ရက်စွဲပုံစံများ JS နေ့စွဲ နည်းလမ်းများ ရယူပါ။ JS ရက်စွဲ သတ်မှတ်နည်းလမ်းများ JS သင်္ချာ JS Random JS Booleans JS နှိုင်းယှဉ်မှုများ JS အခြေအနေများ JS Switch JS Loop For JS Loop For In JS Loop For Of JS Loop While JS Break JS Iterables JS အစုံများ JS Maps JS အမျိုးအစား JS အမျိုးအစား ပြောင်းခြင်း။ JS Bitwise JS RegExp JS အမှားများ JS နယ်ပယ် JS Hoisting JS တင်းကျပ်သောမုဒ် JS ဒီ Keyword ပါ။ JS Arrow Function JS သင်တန်းများ JS JSON JS Debugging JS စတိုင်လမ်းညွှန် JS အကောင်းဆုံးအလေ့အကျင့်များ JS အမှားများ JS စွမ်းဆောင်ရည် JS သီးသန့်စကားလုံးများ

JS ဗားရှင်းများ

JS ဗားရှင်းများ JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge JS သမိုင်း

JS အရာဝတ္ထုများ

Object အဓိပ္ပါယ်ဖွင့်ဆိုချက် Object Properties များ အရာဝတ္ထုနည်းလမ်းများ အရာဝတ္ထုပြသခြင်း။ အရာဝတ္ထု ဆက်စပ်ပစ္စည်းများ Object Constructors များ Object Prototypes Object Iterables အရာဝတ္ထုအစုံများ အရာဝတ္ထုမြေပုံများ Object ကိုးကား

JS လုပ်ဆောင်ချက်များ

လုပ်ဆောင်ချက် အဓိပ္ပါယ်ဖွင့်ဆိုချက် လုပ်ဆောင်ချက် ကန့်သတ်ချက်များ Function Invocation လုပ်ဆောင်ချက်ခေါ်ဆိုမှု လုပ်ဆောင်ချက်ကို အသုံးပြုပါ။ Function ပိတ်ခြင်းများ

JS သင်တန်းများ

အတန်းမိတ်ဆက် Class Inheritance အတန်းထဲမှာလည်း

JS Async

JS ပြန်ခေါ်မှုများ JS Asynchronous JS ကတိများ JS Async/Await

JS HTML DOM

DOM မိတ်ဆက် DOM နည်းလမ်းများ DOM စာရွက်စာတမ်း DOM ဒြပ်စင်များ DOM HTML DOM ပုံစံများ DOM CSS DOM အန်နီမေးရှင်းများ DOM ပွဲများ DOM ဖြစ်ရပ် နားထောင်သူ DOM လမ်းညွှန် DOM Nodes DOM စုစည်းမှုများ DOM Node စာရင်းများ

JS Browser BOM

JS Window JS မျက်နှာပြင် JS တည်နေရာ JS သမိုင်း JS Navigator JS Popup သတိပေးချက် JS Timing JS Cookies

JS ဝဘ် API များ

ဝဘ် API မိတ်ဆက် ဝဘ်ဖောင် API ဝဘ်သမိုင်း API ဝဘ်သိုလှောင်မှု API Web Worker API Web Fetch API ဝဘ် Geolocation API

JS AJAX

AJAX နိဒါန်း AJAX XMLHttp AJAX တောင်းဆိုချက် AJAX တုံ့ပြန်မှု AJAX XML ဖိုင် AJAX PHP AJAX ASP AJAX ဒေတာဘေ့စ် AJAX အပလီကေးရှင်းများ AJAX ဥပမာများ

JS JSON

JSON မိတ်ဆက် JSON Syntax JSON နှင့် XML JSON ဒေတာအမျိုးအစားများ JSON Parse JSON Stringify JSON အရာဝတ္ထုများ JSON Arrays JSON ဆာဗာ JSON PHP JSON HTML JSON JSONP

JS နှင့် jQuery

jQuery ရွေးချယ်မှုများ jQuery HTML jQuery CSS jQuery DOM

JS ဂရပ်ဖစ်

JS ဂရပ်ဖစ် JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

JS ဥပမာများ

JS ဥပမာများ JS HTML DOM JS HTML ထည့်သွင်းမှု JS HTML Objects JS HTML ပွဲများ JS Browser JS တည်းဖြတ်သူ JS လေ့ကျင့်ခန်းများ JS Quiz JS လက်မှတ်

JS ကိုးကားချက်များ

JavaScript Objects HTML DOM အရာဝတ္ထုများ


JavaScript ကတိများ

"ရလဒ်တစ်ခုကို ငါကတိပေးတယ်!"

"ကုဒ်ထုတ်လုပ်ခြင်း" သည် အချိန်အနည်းငယ်ကြာနိုင်သော ကုဒ်ဖြစ်သည်။

"Consuming code" သည် ရလဒ်ကို စောင့်ရမည့် ကုဒ်ဖြစ်သည်။

Promise သည် ကုဒ်ထုတ်လုပ်ခြင်းနှင့် ကုဒ်စားသုံးခြင်းတို့ကို ချိတ်ဆက်ပေးသည့် JavaScript အရာဝတ္ထုတစ်ခုဖြစ်သည်။

JavaScript Promise Object

JavaScript Promise အရာဝတ္တုတွင် ထုတ်လုပ်သောကုဒ်နှင့် စားသုံးကုဒ်သို့ ခေါ်ဆိုမှုများ နှစ်ခုလုံးပါရှိသည်-

Promise Syntax

let myPromise = new Promise(function(myResolve, myReject) {
// "Producing Code" (May take some time)

  myResolve(); // when successful
  myReject();  // when error
});

// "Consuming Code" (Must wait for a fulfilled Promise)
myPromise.then(
  function(value) { /* code if successful */ },
  function(error) { /* code if some error */ }
);

ထုတ်လုပ်သောကုဒ်သည် ရလဒ်ကိုရရှိသောအခါ၊ ပြန်ခေါ်မှုနှစ်ခုထဲမှ တစ်ခုကို ခေါ်ဆိုသင့်သည်-

ရလဒ်ဖုန်းဆက်ပါ။
အောင်မြင်မှုmyResolve(ရလဒ်တန်ဖိုး)
အမှားmyReject(အမှားအယွင်းအရာဝတ္ထု)

Promise Object Properties

JavaScript Promise object သည်-

  • ဆိုင်းငံ့ထားသည်။
  • ပြည့်စုံခြင်း။
  • ပယ်ချသည်။

Promise အရာဝတ္ထုသည် ဂုဏ်သတ္တိနှစ်ခုကို ပံ့ပိုးသည်- အခြေအနေ နှင့် ရလဒ်

Promise အရာဝတ္ထုသည် "ဆိုင်းငံ့" (အလုပ်လုပ်နေချိန်တွင်) ရလဒ်သည် သတ်မှတ်မထားပါ။

Promise object တစ်ခု "ပြည့်စုံသောအခါ" ရလဒ်သည် တန်ဖိုးတစ်ခုဖြစ်သည်။

Promise object တစ်ခုကို "ငြင်းပယ်ခံရသောအခါ၊ ရလဒ်သည် error object ဖြစ်သည်။

myPromise.statemyPromise.ရလဒ်
"ဆိုင်းငံ့"သတ်မှတ်မထားသော
"ပြည့်စုံ"ရလဒ်တန်ဖိုး
"ပယ်ချ"error object တစ်ခု

Promise properties ၏ အခြေအနေ နှင့် ရလဒ်ကို သင်ဝင်ရောက်၍မရပါ

ကတိများကို ကိုင်တွယ်ရန် Promise နည်းလမ်းကို အသုံးပြုရပါမည်။


ကတိပေးနည်း

ဤသည်မှာ ကတိကိုအသုံးပြုနည်းဖြစ်သည်။

myPromise.then(
  function(value) { /* code if successful */ },
  function(error) { /* code if some error */ }
);

Promise.then() သည် အငြင်းအခုံနှစ်ခု၊ အောင်မြင်မှုအတွက် ပြန်ခေါ်ချက်တစ်ခုနှင့် ကျရှုံးမှုအတွက် နောက်တစ်ခုယူသည်။

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

ဥပမာ

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
}

let myPromise = new Promise(function(myResolve, myReject) {
  let x = 0;

// The producing code (this may take some time)

  if (x == 0) {
    myResolve("OK");
  } else {
    myReject("Error");
  }
});

myPromise.then(
  function(value) {myDisplayer(value);},
  function(error) {myDisplayer(error);}
);


JavaScript Promise နမူနာများ

ကတိများအသုံးပြုမှုကို သရုပ်ပြရန်၊ ကျွန်ုပ်တို့သည် ယခင်အခန်းမှ ပြန်လည်ခေါ်ဆိုမှု နမူနာများကို အသုံးပြုပါမည်-

  • အချိန်ကုန်ရန် စောင့်နေသည်။
  • ဖိုင်တစ်ခုကို စောင့်နေသည်။

အချိန်ကုန်ရန် စောင့်နေသည်။

Callback အသုံးပြုခြင်း ဥပမာ

setTimeout(function() { myFunction("I love You !!!"); }, 3000);

function myFunction(value) {
  document.getElementById("demo").innerHTML = value;
}

Promise ကိုအသုံးပြုခြင်း ဥပမာ

let myPromise = new Promise(function(myResolve, myReject) {
  setTimeout(function() { myResolve("I love You !!"); }, 3000);
});

myPromise.then(function(value) {
  document.getElementById("demo").innerHTML = value;
});


ဖိုင်တစ်ခုကို စောင့်နေသည်။

Callback သုံးပြီး ဥပမာ

function getFile(myCallback) {
  let req = new XMLHttpRequest();
  req.open('GET', "mycar.html");
  req.onload = function() {
    if (req.status == 200) {
      myCallback(req.responseText);
    } else {
      myCallback("Error: " + req.status);
    }
  }
  req.send();
}

getFile(myDisplayer);

Promise သုံးပြီး ဥပမာ

let myPromise = new Promise(function(myResolve, myReject) {
  let req = new XMLHttpRequest();
  req.open('GET', "mycar.htm");
  req.onload = function() {
    if (req.status == 200) {
      myResolve(req.response);
    } else {
      myReject("File not Found");
    }
  };
  req.send();
});

myPromise.then(
  function(value) {myDisplayer(value);},
  function(error) {myDisplayer(error);}
);


Browser ပံ့ပိုးမှု

ES6 ဟုလည်းသိကြသော ECMAScript 2015 သည် JavaScript Promise object ကိုမိတ်ဆက်ပေးခဲ့သည်။

အောက်ပါဇယားသည် Promise အရာဝတ္ထုများအတွက် အပြည့်အဝပံ့ပိုးမှုဖြင့် ပထမဆုံးဘရောက်ဆာဗားရှင်းကို သတ်မှတ်ဖော်ပြသည်-

Chrome 33 Edge 12 Firefox 29 Safari 7.1 Opera 20
Feb, 2014 Jul, 2015 Apr, 2014 Sep, 2014 Mar, 2014