Junior
Milyen módszereket ismer az aszinkron kód kezelésére?
sobes.tech MI
Válasz az MI-től
- Callback-függvények: Függvény átadása argumentumként egy másik függvénynek, amelyet egy aszinkron művelet befejezése után hívnak meg. Vezethet "callback hell"-hez.
- Promisszumok (Promises): Olyan objektumok, amelyek egy aszinkron művelet végleges befejezését (vagy kudarcát) és eredményét reprezentálják. Strukturáltabb kezelést biztosítanak az aszinkronitásnak.
// Promisszum használatának példája fetch('/api/data') .then(response => response.json()) // Sikeres válasz kezelése .then(data => console.log(data)) // Kapott adatok kezelése .catch(error => console.error('Hiba az adatok lekérésekor:', error)); // Hiba kezelése - Async/await: Szintaktikai cukor a promisszumok felett, lehetővé téve az aszinkron kód írását szinkronabb stílusban, ami olvashatóbbá és könnyebben hibakereshetővé teszi.
// Async/await használatának példája async function fetchData() { try { const response = await fetch('/api/data'); // Várakozás a promise-re if (!response.ok) { throw new Error(`HTTP-hiba! állapot: ${response.status}`); } const data = await response.json(); // Várakozás a promise-re console.log(data); } catch (error) { console.error('Hiba az adatok lekérésekor:', error); // Hiba kezelése } } fetchData(); - Generatorok: Használhatók az aszinkronitással való munka során a
cokönyvtárral vagy manuálisan, bár azasync/awaitelterjedtebb megközelítés.
Fő megközelítések összehasonlítása:
| Módszer | Előnyök | Hátrányok |
|---|---|---|
| Callbacks | Egyszerű a kezdeti szakaszban | "Callback hell", hibakezelés bonyolult |
| Promises | Jobb olvashatóság, hibakezelés | Láncolt műveleteknél nehézkes lehet |
| Async/await | Magas olvashatóság, szinkron kódhoz hasonló | Környezet támogatást igényel (async/await) |