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...catchblokkokkal - 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ó.