JavaScript Async

"async and await make promises easier to write"

async Jätä funktio palauttamaan Promise

odottaa Jätä funktio odottamaan Promise

Async-grammatiikka

Avainsana funktio async Jätä funktio palauttamaan promise:

Esimerkki

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

Tämä on samanarvoinen:

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

Tässä on esimerkkejä Promise-käytöstä:

myFunction().then(
  function(value) { /* Onnistuessaan */ },
  function(error) { /* Virheen tapahtuessa */ }
);

Esimerkki

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

Kokeile itse

Tai yksinkertaisemmin, koska odotat normaalista arvoa (normaalista vastauksesta, ei virheestä):

Esimerkki

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

Kokeile itse

Await-grammatiikka

Avainsana funktio odottaa Jätä funktio odottamaan promise:

let value = await promise;

odottaa Avainsanat voivat olla vain async Funktioiden sisällä

Esimerkki

Käymme hitaasti läpi, miten sitä käytetään.

Perus语法

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

Kokeile itse

Odota aikakatkaisua

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

Kokeile itse

Odota tiedostoa

async function getFile() {
  lasketaan myPromise = new Promise(function(myResolve, myReject) {
    lasketaan req = new XMLHttpRequest();
    req.open('GET', "mycar.html");
    req.onload = function() {
      jos (req.status == 200) {myResolve(req.response);}
      muuten {myResolve("Tiedosto ei löydy");}
    };
    req.send();
  });
  document.getElementById("demo").innerHTML = odottaa myPromise;
}
getFile();

Kokeile itse

Selaimen tuki

ECMAScript 2017 toi mukanaan JavaScript-avainsanan async ja odottaa.

Seuraavassa taulukossa mainitaan ensimmäiset selaimet, jotka tukevat molempia täysin:

Chrome IE Firefox Safari Opera
Chrome 55 Edge 15 Firefox 52 Safari 11 Opera 42
Syyskuu 2016 Huhtikuu 2017 Maaliskuu 2017 Syyskuu 2017 Syyskuu 2016