Sizda asinxron kod bilan ishlashning qanday usullari bor?
sobes.tech AI
AIdan javob
Callbacks, Promises, async/await.
Callbacks: Funktsiyalar, ular boshqa funksiyalarga argument sifatida o'tkaziladi va asinxron operatsiya tugagach chaqiriladi.
Promises: Ob'ektlar, ular callbacklarga nisbatan ko'proq qulaylik bilan asinxronlikni boshqarish imkonini beradi. Ular pending, fulfilled va rejected holatlarda bo'ladi.
// Promise misoli
function asyncOperation() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Operatsiya muvaffaqiyatli yakunlandi!');
}, 1000);
});
}
asyncOperation()
.then(result => console.log(result))
.catch(error => console.error(error));
async/await: Promises ustidagi sintaktik shakar, bu asinxron kodni sinxron kodga yaqinlashtiradi va uni o'qishni yaxshilaydi.
// async/await misoli
async function performAsyncOperation() {
try {
const result = await asyncOperation();
console.log(result);
} catch (error) {
console.error(error);
}
}
performAsyncOperation();
Usullarning taqqoslanishi:
| Usul | O'qilishi / Qo'llab-quvvatlash | Xatoliklarni boshqarish | Flowni boshqarish |
|---|---|---|---|
| Callbacks | Kamroq o'qiladi (Callback Hell) | Qiyin | Qiyin |
| Promises | Yaxshilangan | Quvnoq (.catch) | Quvnoq (.then, .catch) |
| async/await | Eng yaxshi | Quvnoq (try...catch) | Quvnoq (await) |
Zamonaviy Node.js ilovalarida eng afzal usul async/await bo'lib, uning o'qilishi va qulayligi uchun. Promises muhim vosita bo'lib qolmoqda, ayniqsa past darajadagi amalga oshirishda. Callbacks eskirgan kodda yoki Node.js yadrosining pastki darajadagi operatsiyalarida ishlatiladi.