Sobes.tech
Junior

Porozprávaj mi o konštrukcii async/await v JavaScripte.

sobes.tech AI

Odpoveď od AI

async/await — syntaktický cukor nad promises, navrhnutý pre jednoduchšie písanie asynchrónneho kódu, ktorý vyzerá synchronne.

Funkcia označená slovom async vždy vracia promise. Vo vnútri async funkcie je možné použiť kľúčové slovo await.

Operátor await sa používa pred volaním promise. Pozastaví vykonávanie async funkcie, kým promise nebude vyriešené (resolved) alebo zamietnuté (rejected). Výsledok promise (úspech alebo chyba) je vrátený await.

Ak je promise, na ktorú je await aplikované, zamietnuté, spôsobí to výnimku, ktorú je možné zachytiť blokom try...catch.

// Príklad použitia async/await
async function fetchData() {
  try {
    // Čakáme na dokončenie asynchrónnej operácie (napríklad API požiadavka)
    const response = await fetch('https://api.example.com/data');
    // Analyzujeme odpoveď do JSON
    const data = await response.json();
    // Zobrazíme získané údaje
    console.log(data);
  } catch (error) {
    // Zachytíme akúkoľvek chybu
    console.error('Chyba pri získavaní dát:', error);
  }
}

// Zavoláme async funkciu
fetchData();

// Async funkcia, ktorá vracia promise
async function getValue() {
  return 10; // Toto je automaticky zabalené v Promise.resolve(10)
}

getValue().then(value => console.log(value)); // Vypíše 10

Výhody async/await:

  • Čitateľnosť kódu: Asynchrónny kód vyzerá viac ako synchronný
  • Spracovanie chýb: Jednoduchšie na použitie s štandardnými blokmi try...catch
  • Menej vnorenia: Vyhýba sa "peklu callbackov" alebo dlhým reťazcom .then().

Je dôležité si zapamätať, že await môže byť použitý iba vo vnútri async funkcií.