Asinxronluq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
JavaScript kontekstində asinxronluq, proqramın əsas icra axınına blok qoymadan vəzifələri yerinə yetirmək qabiliyyətidir. Bu, tətbiqin cavabdeh qalmasını təmin edir, məsələn, şəbəkə sorğuları və ya giriş/çıxış əməliyyatları zamanı.
Əsas anlayışlar və mexanizmlər:
-
Event Loop: JavaScript-də asinxronluğun ürəyidir. Daimi olaraq mesaj növbəsini (Message Queue) yoxlayır və əgər çağrı yığını (Call Stack) boşdursa, vəzifələri növbədən yığına köçürür.
-
Callback funksiyaları: Digər funksiyalara arqument kimi verilən və asinxron əməliyyat tamamlandıqdan sonra çağırılan funksiyalar.
-
Promises: Asinxron əməliyyatın yekunlaşmasını (və ya uğursuzluğunu) və onun nəticə dəyərini təmsil edən obyekt. Bu, "callback hell"-dən qaçmağa və daha oxunaqlı asinxron kod yazmağa imkan verir.
// Promise nümunəsi const myPromise = new Promise((resolve, reject) => { setTimeout(() => { resolve("Əməliyyat uğurla tamamlandı!"); }, 1000); }); myPromise .then(result => { console.log(result); // 1 saniyə sonra göstəriləcək }) .catch(error => { console.error(error); }); -
Async/Await: Promislər üzərində sintaktik şəkər, asinxron kodu daha çox sinxron kimi edir, oxunuşu yaxşılaşdırır və səhv idarəsini sadələşdirir.
// async/await nümunəsi async function fetchData() { try { const response = await fetch('https://api.example.com/data'); const data = await response.json(); console.log(data); } catch (error) { console.error('Məlumatların alınmasında xəta:', error); } } fetchData();
Mexanizmlərin müqayisəsi:
| Mexanizm | Təsviri | Üstünlüklər | Çatışmazlıqlar |
|---|---|---|---|
| Callback funksiyaları | Asinxron tapşırıq tamamlandıqdan sonra çağırılan funksiyalar. | Sadə və əsas mexanizm. | "Callback hell" yaranması mümkündür. |
| Promises | Asinxron əməliyyatın nəticəsini təmsil edən obyekt. | Daha yaxşı oxunaqlılıq, səhv idarəsi. | Zəncirlərdə hələ də mürəkkəb ola bilər. |
| Async/Await | Promislər üzərində sintaktik şəkər. Kod xətti və anlaşılandır. | Maksimum oxunaqlılıq, asan debug. | Promislər tələb edir. |
Asinxronluq müasir və cavab verən veb tətbiqləri yaratmaq üçün çox vacibdir, API sorğuları kimi uzun müddətli əməliyyatları istifadəçi interfeysini bloklamadan yerinə yetirməyə imkan verir.