Junior
Aké spôsoby práce s asynchrónnym kódom poznáte?
sobes.tech AI
Odpoveď od AI
- Callback funkcie: Odovzdanie funkcie ako argumentu inej funkcii, ktorá bude volaná po dokončení asynchrónnej operácie. Môžu viesť k "callback hell".
- Promisy (Promises): Objekt, ktorý predstavuje konečné dokončenie (alebo neúspech) asynchrónnej operácie a jej výslednú hodnotu. Poskytujú štruktúrovanejšie riadenie asynchrónnosti.
// Príklad použitia promise fetch('/api/data') .then(response => response.json()) // Spracovanie úspešnej odpovede .then(data => console.log(data)) // Spracovanie získaných dát .catch(error => console.error('Chyba pri načítaní dát:', error)); // Spracovanie chyby - Async/await: Syntaxový cukor nad promises, ktorý umožňuje písať asynchrónny kód v viac synchronickom štýle, čo ho robí čitateľnejším a jednoduchším na ladenie.
// Príklad použitia async/await async function fetchData() { try { const response = await fetch('/api/data'); // Čakanie na vykonanie promise if (!response.ok) { throw new Error(`HTTP chyba! stav: ${response.status}`); } const data = await response.json(); // Čakanie na vykonanie promise console.log(data); } catch (error) { console.error('Chyba pri načítaní dát:', error); // Spracovanie chyby } } fetchData(); - Generátory (Generators): Môžu byť použité na prácu s asynchrónnosťou v spojení s knižnicou
coalebo ručne, hociasync/awaitsa stal rozšírenejším prístupom.
Porovnanie hlavných prístupov:
| Spôsob | Výhody | Nevýhody |
|---|---|---|
| Callbacks | Jednoduché na začiatku | "Callback hell", zložitosť spracovania chýb |
| Promises | Zlepšená čitateľnosť, spracovanie chýb | Môžu byť objemné pri reťazení operácií |
| Async/await | Vysoká čitateľnosť, podobnosť so synchronickým kódom | Vyžaduje podporu async/await prostredia |