Junior
Kokius būdus žinote dirbti su asinchroniniu kodu?
sobes.tech AI
Atsakymas iš AI
Kviečiai, pažadai, async/await.
Kviečiai: funkcijos, perduodamos kaip argumentai kitoms funkcijoms ir iškviečiamos po asinchroninės operacijos pabaigos.
Pažadai: objektai, kurie suteikia patogesnį būdą valdyti asinchroniškumą nei kviečiai. Jie turi būsenas pending, fulfilled ir rejected.
// Pavyzdys su Promise
function asyncOperation() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Operacija sėkmingai užbaigta!');
}, 1000);
});
}
asyncOperation()
.then(result => console.log(result))
.catch(error => console.error(error));
async/await: sintaksės cukrus virš Promise, kuris daro asinchroninį kodą panašesnį į sinchroninį ir gerina jo skaitomumą.
// Pavyzdys su async/await
async function performAsyncOperation() {
try {
const result = await asyncOperation();
console.log(result);
} catch (error) {
console.error(error);
}
}
performAsyncOperation();
Lyginant būdus:
| Būdas | Skaitymas / Palaikymas | Klaidos apdorojimas | Srauto valdymas |
|---|---|---|---|
| Kviečiai | Mažiau skaitomi (Callback Hell) | Sunkiau | Sunkiau |
| Pažadai | Patobulinti | Patogu (.catch) | Patogu (.then, .catch) |
| async/await | Geriausias | Patogu (try...catch) | Patogu (await) |
Šiuo metu geriausias būdas Node.js programose yra naudoti async/await, dėl jo skaitomumo ir patogumo. Pažadai išlieka svarbūs įrankiai, ypač žemesnio lygio įgyvendinime. Kviečiai naudojami pasenusiame kode arba žemo lygio operacijose Node.js branduolyje.