Junior
Jaké způsoby práce s asynchronním kódem znáš?
sobes.tech AI
Odpověď od AI
Zpětná volání, Promisy, async/await.
Zpětná volání: Funkce předávané jako argumenty jiným funkcím, které jsou volány po dokončení asynchronní operace.
Promisy: Objekt, který nabízí pohodlnější způsob správy asynchronnosti ve srovnání se zpětnými voláními. Mají stavy pending, fulfilled a rejected.
// Příklad Promise
function asyncOperation() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Operace úspěšně dokončena!');
}, 1000);
});
}
asyncOperation()
.then(result => console.log(result))
.catch(error => console.error(error));
async/await: Syntaktický cukr nad Promisy, který činí asynchronní kód více podobný synchronnímu a zlepšuje jeho čitelnost.
// Příklad async/await
async function performAsyncOperation() {
try {
const result = await asyncOperation();
console.log(result);
} catch (error) {
console.error(error);
}
}
performAsyncOperation();
Porovnání metod:
| Metoda | Čitelnost / Údržba | Zpracování chyb | Řízení toku |
|---|---|---|---|
| Zpětná volání | Méně čitelná (Callback Hell) | Těžké | Těžké |
| Promisy | Vylepšené | Pohodlné (.catch) | Pohodlné (.then, .catch) |
| async/await | Nejlepší | Pohodlné (try...catch) | Pohodlné (await) |
Nejvíce preferovanou metodou v moderních Node.js aplikacích je použití async/await kvůli jeho čitelnosti a pohodlí. Promisy zůstávají důležitým nástrojem, zejména na nižší úrovni implementace. Zpětná volání se používají ve zastaralém kódu nebo pro nízkoúrovňové operace jádra Node.js.