JavaScript Asenkron

"async and await make promises easier to write"

async Fonksiyonu Promise döndürür:

await Fonksiyonu Promise bekletir:

Async grameri

Fonksiyon önündeki anahtar kelime async Fonksiyonu promise döndürür:

Örnek

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

Eşdeğerdir:

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

Aşağıda Promise kullanımı gösterilir:

myFunction().then(
  function(value) { /* Başarılı durumundaki kod */ },
  function(error) { /* Hata durumundaki kod */ }
);

Örnek

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

Kişisel Deneyim

Daha basit, çünkü normal değerler bekliyorsunuz (hata olmayan normal yanıt):

Örnek

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

Kişisel Deneyim

Await grameri

Fonksiyon önündeki anahtar kelime await Fonksiyonu promise bekletir:

let value = await promise;

await Anahtar kelimeler sadece async Fonksiyon içinde kullanılır.

Örnek

Bu kullanımını öğrenmek için yavaş yavaş ilerleyelim.

Temel gramer

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

Kişisel Deneyim

Bekleme zaman aşımı

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

Kişisel Deneyim

Dosya bekliyor

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("Dosya Bulunamadı");}
    };
    req.send();
  });
  document.getElementById("demo").innerHTML = await myPromise;
}
getFile();

Kişisel Deneyim

Tarayıcı Desteği

ECMAScript 2017, JavaScript anahtar kelimesi getirdi async ve await.

Aşağıdaki tablo, her ikisini de tamamen destekleyen ilk tarayıcı sürümlerini belirtmektedir:

Chrome IE Firefox Safari Opera
Chrome 55 Edge 15 Firefox 52 Safari 11 Opera 42
2016 Yılı 12 Ayı 2017 Yılı 4 Ayı 2017 Yılı 3 Ayı 2017 Yılı 9 Ayı 2016 Yılı 12 Ayı