Javascript Async-Await nedir ?

Async-await, Promise yapısını daha basitleştirmek ve o uzun uzadıya giden “then”li yapıyı daha okunur hale getirmek için ortaya çıkmıştır. Javascriptte Promise yapısı bir işlemin tamamlanmasını beklemek için kullanılır ve böylelikle Promise olarak tanımlanan fonksiyon bitmeden diğer işlemlere geçilmez.

Async olarak tanımlanan her fonksiyon bir Promise döndürür ve Promise işleminin sonucuna “then()” kullanarak ulaşabilir. Tam bu esnada ise await devreye girer ve bizi o “then”den kurtarır. Await yapılan işlemi resolve olana kadar bekletir ve sonuç olarak bir Promise döndürmez.

const f = async ()=> {
    return 1
}

f() //Promise
f().then(alert); // 1

Aşağıda 1. örnekteki gibi bir data çekme fonksiyonuna async vererek o işlemin bir Promise işlemi olduğunu belirtir ve await ile birlikte de o Promise işlemini resolve olmuş şekilde alabiliriz. Async-await bizi 2. örnekteki gibi uzun bir fetch işleminden kurtararak okunabilirliği daha kolay hale getirir.

I-) async function getData() {
    // read our JSON
    let response = await fetch('/bla/bla/user.json');
    let user = await response.json();

  }

II-)  fetch('/bla/bla/user.json')
        .then(response => response.json() )
        .then(user => console.log(user));

Kaynak : https://javascript.info/