JavaScript Async

"async and await make promises easier to write"

async ka aikata function kaiwaita Promise

await ka aikata function kaiwaita Promise

fasiyarin Async

kalmomomi a cikin function async ka aikata function kaiwaita promise:

wurin

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

kuma wadanda:

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

duba wasu hanyar kuma a yiwa Promise:

myFunction().then(
  function(value) { /* 成功时的代码 */ },
  function(error) { /* 出错时的代码 */ }
);

wurin

async function myFunction() {
  return "Hello";
}
myFunction().then(
  function(value) {myDisplayer(value);},
  function(error) {myDisplayer(error);}
);

亲自试一试

ko wadanda, saboda ana kirayi wa'annan daga mutum (jumlarin mutum, kuma kuma daga ra'ayin),

wurin

async function myFunction() {
  return "Hello";
}
myFunction().then(
  function(value) {myDisplayer(value);}
);

亲自试一试

fasiyarin Await

kalmomomi a cikin function await ka aikata function kaiwaita promise:

let value = await promise;

await kalmomomi zai async a gida gida

wurin

kanawa kaiwa kamaru kuma karanta shi gida.

fasiyarin gaba

async function myDisplay() {
  let myPromise = new Promise(function(myResolve, myReject) {
    myResolve("I love You !!");
  });
  document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();

亲自试一试

kaiwa wakilai

async function myDisplay() {
  let myPromise = new Promise(function(myResolve, myReject) {
    setTimeout(function() { myResolve("I love You !!"); }, 3000);
  });
  document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();

亲自试一试

kaiwa file

async function getFile() {
  let myPromise = new Promise(function(myResolve, myReject) {
    let req = new XMLHttpRequest();
    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 关键字 asyncawait

下表注明了首个完全支持两者的浏览器版本:

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 月