Sobes.tech
Junior

Mesélj az async/await szerkezetéről JavaScriptben.

sobes.tech MI

Válasz az MI-től

Az async/await szintaktikus cukor a promise-ok felett, amelyet az aszinkron kód könnyebb írására terveztek, amely szinkronnak tűnik.

Egy async-szel jelölt függvény mindig ígéreteket (promise) ad vissza. Egy async-szel ellátott függvényen belül használhatod az await kulcsszót.

Az await operátor egy promise hívása előtt van. Megállítja az async függvény végrehajtását, amíg a promise meg nem oldódik (resolved) vagy el nem utasítják (rejected). A promise eredménye (siker vagy hiba) az await által kerül visszaadásra.

Ha az await-tel ellátott promise elutasításra kerül, ez kivételt okoz, amelyet a try...catch blokk segítségével lehet elkapni.

// async/await használatának példája
async function fetchData() {
  try {
    // Várunk egy aszinkron művelet befejeződését (pl. API kérés)
    const response = await fetch('https://api.example.com/data');
    // A választ JSON-re elemzi
    const data = await response.json();
    // A kapott adatokat kiírja
    console.log(data);
  } catch (error) {
    // Bármilyen hibát elkap
    console.error('Hiba az adatok lekérésekor:', error);
  }
}

// async függvény hívása
fetchData();

// Promise-t visszaadó async függvény
async function getValue() {
  return 10; // Ez automatikusan Promise.resolve(10)-be csomagolódik
}

getValue().then(value => console.log(value)); // Kiírja, hogy 10

Az async/await előnyei:

  • Kód olvashatósága: Az aszinkron kód inkább hasonlít a szinkronhoz
  • Hibakezelés: Egyszerűbb a szokásos try...catch blokkokkal
  • Kevesebb beágyazás: Elkerüli a "callback poklot" vagy a hosszú .then() láncokat.

Fontos megjegyezni, hogy az await csak async függvényeken belül használható.