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