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í.