Koje načine rada sa asinhronim kodom poznaješ?
sobes.tech АИ
Одговор од АИ
Pozivi nazad, Obaveze, async/await.
Pozivi nazad: Funkcije koje se prosleđuju kao argumenti drugim funkcijama, koje se pozivaju nakon završetka asinhrone operacije.
Obaveze: Objekti koji pružaju prikladniji način upravljanja asinhronim radnjama u poređenju sa pozivima nazad. Imaju stanja pending, fulfilled i rejected.
// Primer Obaveze
function asyncOperation() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Operacija uspešno završena!');
}, 1000);
});
}
asyncOperation()
.then(result => console.log(result))
.catch(error => console.error(error));
async/await: Sintaktički šećer nad Obavezama, koji čini asinhroni kod sličnijim sinhronom i poboljšava njegovu čitljivost.
// Primer async/await
async function performAsyncOperation() {
try {
const result = await asyncOperation();
console.log(result);
} catch (error) {
console.error(error);
}
}
performAsyncOperation();
Poređenje metoda:
| Metod | Čitljivost / Održavanje | Obrada grešaka | Kontrola toka |
|---|---|---|---|
| Pozivi nazad | Manje čitljivo (Callback Hell) | Teško | Teško |
| Obaveze | Poboljšano | Udobno (.catch) | Udobno (.then, .catch) |
| async/await | Najbolje | Udobno (try...catch) | Udobno (await) |
Najpreferiraniji metod u modernim Node.js aplikacijama je korišćenje async/await zbog njegove čitljivosti i udobnosti. Obaveze ostaju važan alat, posebno na nižem nivou implementacije. Pozivi nazad se koriste u zastarelim kodovima ili za niskonivojske operacije u jezgru Node.js.