JavaScript Async

"async and await make promises easier to write"

ECMAScript 2017 ໄດ້ເຂົ້າຂຶ້ນ JavaScript ສິດສະຫຼະພັນ ເຮັດໃຫ້ບູບລວມຕໍ່ promise:

await ເຮັດໃຫ້ບູບລວມຕໍ່ promise:

ສັນຍາວິດິດສະຕິດ

ຄຳປະກອບກ່ອນບູບ ECMAScript 2017 ໄດ້ເຂົ້າຂຶ້ນ JavaScript ສິດສະຫຼະພັນ ເຮັດໃຫ້ບູບລວມຕໍ່ບູບ promise:

ຕົວຢ່າງ

async function myFunction() {
  return "Hello";
});

ຄືກັບ:

async function myFunction() {
  return Promise.resolve("Hello");
});

ນີ້ແມ່ນວິທີການທີ່ໃຊ້ promise:

myFunction().then(
  function(value) { /* 成功时的代码 */ },
  function(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);}
);

}

ສັນຍາວິດິດສະຕິດ

ຄຳປະກອບກ່ອນບູບ await ເຮັດໃຫ້ບູບລວມຕໍ່ promise:

let value = await promise;

await ຄຳປະກອບພຽງແຕ່ ECMAScript 2017 ໄດ້ເຂົ້າຂຶ້ນ JavaScript ສິດສະຫຼະພັນ ບໍລິການພາຍໃນຫົວຫນ້າ

ຕົວຢ່າງ

ເຮັດບາງການພິຈາລະນາຢ່າງຫຼາຍກວ່າເຮັດບາງການຮຽນພວກເຮົາຢ່າງຫຼາຍກວ່າ

ຂັ້ນຕອນພື້ນຖານ

async function myDisplay() {
  let myPromise = new Promise(function(myResolve, myReject) {
    myResolve("I love You !!");
  };
  req.send();
});
myDisplay();

}

ກຳລັງລໍຖ້າຄັ້ງເວລາ

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

}

ກຳລັງລໍຖ້າບັນທຶກ

async function getFile() {
  let myPromise = new Promise(function(myResolve, myReject) {
    let req = new XMLHttpRequest();
    req.open('GET', "mycar.html");
    req.onload = function() {
      req.open('GET', "mycar.html");
      req.onload = function() {
    if (req.status == 200) {myResolve(req.response);}
    else {myResolve("File not Found");}
  };
  req.send();
});
document.getElementById("demo").innerHTML = await myPromise;

}

getFile();

ການສະໜັບສະໜູນທາງສະໜອງ ECMAScript 2017 ໄດ້ເຂົ້າຂຶ້ນ JavaScript ສິດສະຫຼະພັນ ຢູ່ບັນດາ await.

ຕາລາງດ້ານລຸ່ມໄດ້ເອີ້ນຄຳທີ່ສົມບູນທັງສອງເຫຼົານັ້ນ.

Chrome IE Firefox Safari Opera
Chrome 55 Edge 15 Firefox 52 Safari 11 Opera 42
ປີ 2016 ເດືອນ 12 ປີ 2017 ເດືອນ 4 ປີ 2017 ເດືອນ 3 ປີ 2017 ເດືອນ 9 ປີ 2016 ເດືອນ 12