Warning: file_put_contents(aCache/aDaily/post/brogrammist/--): Failed to open stream: No space left on device in /var/www/tgoop/post.php on line 50
Brogrammist@brogrammist P.54
BROGRAMMIST Telegram 54
JavaScript'ning asinxronligi

Bundan oldingi postda JS'ning sinxronligi va shuning uchun uzoq bajariladigan operatsiyalar asosiy thread'ni bloklab qoyishini yozgandim. Bu postda esa, asosiy-thread’ni bloklamaydigan asinxron JavaScript haqida gaplashamiz.

JavaScript’dagi asinxron operatisyalarni quyidagi ketma-ketlik bilan tariflash mumkin:

1. Ma’lum bir funksiyani chaqirish orqali bajarilishi uzoq vaqt oladigan operatsiyani boshlash.

2. Funksiya operatsiyani boshlagandan so’ng darhol “return” qilishi (ya’ni ishini tugatishi) va boshqa amallarni bajarishda davom etishi.

3. Qachonki o’sha operatsiya tugaganda notifikatsiya olish.

Asinxron operatsiyaga eng oddiy misol bu veb-sahifadagi event’lar bilan ishlash:

button.addEventListener(
'click',
() => console.log('Tugma bosildi!')
);

Tepadagi misolda addEventListener metodini chaqirganimizda dasturimiz shu joyda to’xtab qolmaydi. Ya’ni, qachon “click” sodir bolarkan demasdan undan keyingi keladigan ishlarni bajarishda davom etaveradi. Qachondir “click” sodir bo’lganidagina, biz registratsiya qilgan callback/handler funksiyamiz chaqirladi.

setTimeout(() => {
console.log('Vaqt tugadi');
}, 1000);

setTimeout funksiyasi ham asinxron operatsiya bajaradi. Uni chaqirganimizda, orqa fonda taymer ishga tushadi va taymer vaqti tugab, ishini yakunlarkan, biz bergan callback chaqiriladi.

Umuman olganda, JavaScript’dagi barcha asinxron amallar event tushunchasi bilan bog’liq: qandaydir operatsiya orqa fonda bajariladi va u tugagach unga mos event sodir bo’lgani haqida notifikatsiya beriladi.

Shu joyda bir narsani yodda sanqlang: asinxron operatsiyalar (event sodir bolishini, network request javobini yoki taymerni kutish) orqa fonda bajariladi, ularning callback/handler’lari esa asosiy thread’da ishga tushadi. Shuning uchun bu asinxron operatsiyalar asosiy thread’ni bloklamasa ham, ulardan keyin qilinadigan operatsiyalar (biz bergan handler’lar) uni bloklab qo’yishi mumkin.

To be continued. Keyingi post Promise haqida.
👍12



tgoop.com/brogrammist/54
Create:
Last Update:

JavaScript'ning asinxronligi

Bundan oldingi postda JS'ning sinxronligi va shuning uchun uzoq bajariladigan operatsiyalar asosiy thread'ni bloklab qoyishini yozgandim. Bu postda esa, asosiy-thread’ni bloklamaydigan asinxron JavaScript haqida gaplashamiz.

JavaScript’dagi asinxron operatisyalarni quyidagi ketma-ketlik bilan tariflash mumkin:

1. Ma’lum bir funksiyani chaqirish orqali bajarilishi uzoq vaqt oladigan operatsiyani boshlash.

2. Funksiya operatsiyani boshlagandan so’ng darhol “return” qilishi (ya’ni ishini tugatishi) va boshqa amallarni bajarishda davom etishi.

3. Qachonki o’sha operatsiya tugaganda notifikatsiya olish.

Asinxron operatsiyaga eng oddiy misol bu veb-sahifadagi event’lar bilan ishlash:


button.addEventListener(
'click',
() => console.log('Tugma bosildi!')
);

Tepadagi misolda addEventListener metodini chaqirganimizda dasturimiz shu joyda to’xtab qolmaydi. Ya’ni, qachon “click” sodir bolarkan demasdan undan keyingi keladigan ishlarni bajarishda davom etaveradi. Qachondir “click” sodir bo’lganidagina, biz registratsiya qilgan callback/handler funksiyamiz chaqirladi.

setTimeout(() => {
console.log('Vaqt tugadi');
}, 1000);

setTimeout funksiyasi ham asinxron operatsiya bajaradi. Uni chaqirganimizda, orqa fonda taymer ishga tushadi va taymer vaqti tugab, ishini yakunlarkan, biz bergan callback chaqiriladi.

Umuman olganda, JavaScript’dagi barcha asinxron amallar event tushunchasi bilan bog’liq: qandaydir operatsiya orqa fonda bajariladi va u tugagach unga mos event sodir bo’lgani haqida notifikatsiya beriladi.

Shu joyda bir narsani yodda sanqlang: asinxron operatsiyalar (event sodir bolishini, network request javobini yoki taymerni kutish) orqa fonda bajariladi, ularning callback/handler’lari esa asosiy thread’da ishga tushadi. Shuning uchun bu asinxron operatsiyalar asosiy thread’ni bloklamasa ham, ulardan keyin qilinadigan operatsiyalar (biz bergan handler’lar) uni bloklab qo’yishi mumkin.

To be continued. Keyingi post Promise haqida.

BY Brogrammist


Share with your friend now:
tgoop.com/brogrammist/54

View MORE
Open in Telegram


Telegram News

Date: |

In handing down the sentence yesterday, deputy judge Peter Hui Shiu-keung of the district court said that even if Ng did not post the messages, he cannot shirk responsibility as the owner and administrator of such a big group for allowing these messages that incite illegal behaviors to exist. How to create a business channel on Telegram? (Tutorial) 2How to set up a Telegram channel? (A step-by-step tutorial) Clear A Hong Kong protester with a petrol bomb. File photo: Dylan Hollingsworth/HKFP.
from us


Telegram Brogrammist
FROM American