Sobes.tech
Junior

Pověz mi o konstrukci async/await v JavaScriptu.

sobes.tech AI

Odpověď od AI

async/await — syntaktický cukor nad promises, navržený pro jednodušší psaní asynchronního kódu, který vypadá synchronně.

Funkce označená slovem async vždy vrací promise. Uvnitř async funkce lze použít klíčové slovo await.

Operátor await se používá před voláním promise. Pozastaví provádění async funkce, dokud promise nebude vyřešeno (resolved) nebo zamítnuto (rejected). Výsledek promise (úspěch nebo chyba) je vrácen await.

Pokud je promise, na kterou je await použito, zamítnuto, způsobí to výjimku, kterou lze zachytit blokem try...catch.

// Příklad použití async/await
async function fetchData() {
  try {
    // Čekáme na dokončení asynchronní operace (například API požadavek)
    const response = await fetch('https://api.example.com/data');
    // Parsujeme odpověď do JSON
    const data = await response.json();
    // Vypíšeme získaná data
    console.log(data);
  } catch (error) {
    // Zachytíme případnou chybu
    console.error('Chyba při získávání dat:', error);
  }
}

// Zavoláme async funkci
fetchData();

// Async funkce, která vrací promise
async function getValue() {
  return 10; // To je automaticky zabalené v Promise.resolve(10)
}

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

Výhody async/await:

  • Čitelnost kódu: Asynchronní kód vypadá více jako synchronní
  • Zpracování chyb: Snadnější použití s běžnými bloky try...catch
  • Méně vnoření: Vyhýbá se "peklu callbacků" nebo dlouhým řetězcům .then().

Je důležité pamatovat, že await lze použít pouze uvnitř async funkcí.