JavaScript-da Asinxron Dasturlash
JavaScript kodlarni qat'iy tartibda, qatorma-qator bajaradi. Lekin ba'zida bizga ba'zi amallar (masalan, API-dan ma'lumot olish) fonda bajarilishi va natija tayyor bo'lgandagina unga qaytish kerak bo'ladi.
Asinxron O'rganish Yo'li
JavaScript-da asinxronlikni to'g'ri tartibda o'rganing:
- Asinxron Dasturlash haqida — Asinxronlik nima va u qanday ishlaydi?
- Taymerlar va kechikishlar —
setTimeoutvasetIntervalbilan ishlash. - Asinxron Callbacklar — Qayta chaqiruv funksiyalarining asinxron tabiati.
- Promislar bilan ishlash — Kelajakdagi natijalarni boshqarish.
- Async/Await chuqur — Promislar bilan ishlashning eng zamonaviy va qulay usuli.
- Asinxron Fetch API — Serverdan ma'lumot olish.
- Asinxron kodni debug qilish — Xatolarni topish va tuzatish.
- Promislar ma'lumotnomasi — Barcha metodlar jadvali. :::
1-qadam: Asinxronlik nima?
JavaScript odatda sinxron (navbatma-navbat) ishlaydi. Bu degani, bir qator kod tugamaguncha keyingisi boshlanmaydi.
Asinxron dasturlash esa ba'zi amallarni "fonda" bajarishga imkon beradi. Natija tayyor bo'lganda, JavaScript unga qaytadi va kerakli amalni bajaradi. Bu brauzer muzlab qolmasligi (freezing) uchun juda muhim.
2-qadam: Taymerlar (Timeouts)
setTimeout() metodi funksiyani ma'lum bir vaqtdan keyin ishga tushirish uchun ishlatiladi. Bu asinxron amal bo'lib, u taymer sanayotgan vaqtda boshqa kodlarning ishlashini to'xtatib qo'ymaydi.
3-qadam: Callback funksiyalar
Callback — bu boshqa funksiya bajarilib bo'lganidan so'ng chaqiriladigan funksiya. "Callback" nomi — "ishni tugatgach, menga qaytib qo'ng'iroq qil (call back)" degan ma'noni anglatadi.
4-qadam: Promislar (Promises)
JavaScript Promislar asinxronlikni boshqarishni osonlashtirish uchun yaratilgan. Obyekt ko'rinishidagi Promise — bu asinxron amalning muvaffaqiyatli yakunlanishi yoki xato bilan tugashini ifodalaydi.
5-qadam: Async / Await
async va await kalit so'zlari promislar bilan ishlashni yanada osonlashtiradi. Ular yordamida asinxron kodni xuddi oddiy sinxron kod kabi o'qiladigan ko'rinishda yozishingiz mumkin.
asyncfunksiyani har doim Promise qaytaradigan qiladi.awaitesa funksiyani Promise natijasi chiqquncha kutishga majbur qiladi.
