Asinxron JS

JavaScript odatda bir vaqtda bitta operatorni bajaradi.

Har bir operator keyingi operator ishga tushishidan oldin tugashi kerak.

Agar vazifa uzoq vaqt talab qilsa, u sahifani bloklashi va brauzerni muzlatib qo‘yishi mumkin.

Asinxron dasturlash JavaScript-ga faylni olish kabi uzoq davom etadigan vazifani boshlash va natijani kutayotganda boshqa kodni ishlatishni davom ettirish imkonini beradi.


1. Asinxron dasturlash

JavaScript kodni bir vaqtning o‘zida bir qatorda bajaradi. Keyingi qator ishga tushishidan oldin har bir qator tugashi kerak.

Asinxron - bu JavaScript-ning ba’zi kodlarning fonda ishlashiga ruxsat berishi va ularning natijalari tayyor bo‘lganda qayta ishlanishi mumkin.


2. Asinxron callback’lar

Callback — boshqa funksiyaga uzatilgan funksiya.

Asinxron JavaScript-da Callback-lar ko‘pincha keyin tayyor bo‘ladigan natijalarni qayta ishlash uchun ishlatiladi.

Callback o‘z-o‘zidan asinxron emas.

Callback’lar setTimeout(), hodisalar yoki fetch() kabi asinxron API’lar tomonidan ishlatilganda asinxron dasturlashning bir qismiga aylanadi.



3. Asinxron Promise’lar

JavaScript Promiselari asinxron JavaScript-ni ishlatishni osonlashtirish uchun yaratilgan.

Promise obyekti asinxron operatsiyaning tugallanishi yoki bajarilmasligini ifodalaydi.

Promise uchta eksklyuziv holatdan birida bo‘lishi mumkin: kutilayotgan, rad etilgan yoki bajarilgan.


4. Async Await

Asinx va await kalit so‘zlari Promise-ga asoslangan kodni o‘qishni osonlashtiradi.

Ichki tomondan async va await baribir Promise’lardan foydalanadi.

Funksiya oldidagi async kalit so‘zi funksiyaning promise qaytarishini ta’minlaydi.

Oddiy qiymatni qaytarsangiz ham, bu to‘g‘ri.

Agar funksiya qiymatni qaytarsa, JavaScript avtomatik ravishda ushbu qiymatni Promise-ga o‘tkazadi.


5. Asinxron parallel bajarish

await operatori davom etishdan oldin bitta Promise’ni kutadi.

Agar bir nechta asinxron operatsiyalar bir-biriga bog‘liq bo‘lmasa, ularni birma-bir kutish kerak bo‘lgandan sekinroq bo‘lishi mumkin.

Buning o‘rniga siz barcha operatsiyalarni bir vaqtning o‘zida boshlashingiz va ularni birgalikda kutishingiz mumkin.


6. Asinxron Event Loop

JavaScript bir vaqtning o‘zida faqat bitta kod qismini bajarishi mumkin.

JavaScript band bo‘lganda boshqa JavaScript kodi kutishi kerak.

JavaScript taymerlar, foydalanuvchi bosishlari, yuklab olishlar va asinxron operatsiyalarni qanday boshqaradi?

Javob - Voqealar sikli.


7. Asinxron Fetch

Zamonaviy ilovalar ma’lumot olish uchun asinxron koddan foydalanadi.

fetch() — serverdan ma’lumot so‘rashning zamonaviy usuli.

fetch() asinxron bo‘lib, promise qaytaradi.


8. Asinxron xatolar

Asynchronous programming introduces new concepts:

  • Callbacks
  • Promises
  • async/await

Ko‘pgina boshlang‘ich xatolar asinxron kod har doim ham siz kutgan tartibda bajarilmasligi sababli sodir bo‘ladi.

Ushbu bobda eng ko‘p uchraydigan xatolar va ulardan qanday qochish kerakligi tasvirlangan.


9. Asinxron debug qilish

Asinxron kodni debug qilish sinxron kodga qaraganda qiyinroq bo‘lishi mumkin.

Kod ko‘pincha kutilganidan kechroq bajariladi va bir vaqtning o‘zida bir nechta asinxron operatsiyalar bajarilishi mumkin.

Ushbu bobda asinxron JavaScript-da keng tarqalgan muammolarni topish va tuzatish usullari ko‘rsatilgan.

Bu bobda fetch(), promise’lar va async/await’ni debug qilishning amaliy usullari ko‘rsatilgan.


10. Asinxron AbortController

AbortController obyekti asinxron amallarni bekor qilish imkonini beradi.

U odatda fetch() so‘rovlarini bekor qilish uchun ishlatiladi.

Keraksiz operatsiyalarni bekor qilish unumdorlikni oshirishi va ilovalarni yanada sezgir qilishi mumkin.


11. Asinxron Web Worker’lar

Asinxron dasturlash quyidagilarni kutish paytida ilovalarning javob berish qobiliyatini saqlab qoladi:

  • Timers
  • User input
  • Network requests

Biroq, uzoq davom etgan hisob-kitoblar hali ham asosiy oqimni bloklashi va sahifani javob bermasligi mumkin.

Web Worker’lari buni JavaScript-ni alohida oqimda ishga tushirish orqali hal qilishadi.


12. Asinxron ma’lumotnomalar

Promise obyektining barcha metodlari

2026-yil fevral oyida yangilangan


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!