Milliseid viise sa tead asünkroonse koodiga töötamiseks?
sobes.tech AI
Vastus AI-lt
Kutsed, Loodused, async/await.
Kutsed: funktsioonid, mis edastatakse teiste funktsioonide argumentidena ja kutsutakse pärast asünkroonilise operatsiooni lõpetamist.
Loodused: objektid, mis pakuvad mugavamat viisi asünkroonsuse haldamiseks võrreldes kutsedega. Neil on olekud pending, fulfilled ja rejected.
// Näide Promise'ist
function asyncOperation() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Operatsioon edukalt lõpetatud!');
}, 1000);
});
}
asyncOperation()
.then(result => console.log(result))
.catch(error => console.error(error));
async/await: sünteetiline suhkrupulber Promise'ide peal, mis muudab asünkroonse koodi sarnasemaks sünkrontse ja parandab selle loetavust.
// Näide async/await'ist
async function performAsyncOperation() {
try {
const result = await asyncOperation();
console.log(result);
} catch (error) {
console.error(error);
}
}
performAsyncOperation();
Võrdlus meetodite vahel:
| Meetod | Loetavus / Toetus | Vea käsitlemine | Jooksu juhtimine |
|---|---|---|---|
| Kutsed | Vähem loetav (Callback Hell) | Raske | Raske |
| Loodused | Parendatud | Mugav (.catch) | Mugav (.then, .catch) |
| async/await | Parim | Mugav (try...catch) | Mugav (await) |
Praegu on kaasaegsete Node.js rakenduste kõige eelistatum viis kasutada async/await, kuna see on loetav ja mugav. Loodused jäävad olulisteks tööriistadeks, eriti madalama taseme rakendustes. Kutsed kasutatakse vananenud koodis või madala taseme operatsioonides Node.js tuumades.