Junior
Asinxron kodla işləmək üçün hansı üsulları bilirsiniz?
sobes.tech Süni İntellekt
AI-dan cavab
- Callback funksiyaları: Bir funksiyanı başqa bir funksiyaya arqument kimi ötürmək və onun asinxron əməliyyat tamamlandıqdan sonra çağırılması. Bu, "callback hell"-ə səbəb ola bilər.
- Promisler (Promises): Asinxron əməliyyatın yekunlaşmasını (və ya uğursuzluğunu) və onun nəticə dəyərini təmsil edən obyektlər. Daha strukturlaşdırılmış asinxron idarəetmə təmin edir.
// Promis istifadəsi nümunəsi fetch('/api/data') .then(response => response.json()) // Uğurlu cavabın işlənməsi .then(data => console.log(data)) // Alınan məlumatların işlənməsi .catch(error => console.error('Məlumatların alınmasında xəta:', error)); // Xəta idarəetməsi - Async/await: Promislər üzərində sintaktik şəkər, asinxron kodu daha sətirli yazmağa imkan verir, onu daha oxunaqlı və asan xətaları tapmağa kömək edir.
// Async/await istifadəsi nümunəsi async function fetchData() { try { const response = await fetch('/api/data'); // Promisi gözləmək if (!response.ok) { throw new Error(`HTTP xətası! vəziyyət: ${response.status}`); } const data = await response.json(); // Promisi gözləmək console.log(data); } catch (error) { console.error('Məlumatların alınmasında xəta:', error); // Xəta idarəetməsi } } fetchData(); - Generatorlər:
cokitabxanası ilə və ya əl ilə işləmək üçün istifadə edilə bilər, lakinasync/awaitdaha geniş yayılmışdır.
Əsas yanaşmaların müqayisəsi:
| Yanaşma | Üstünlüklər | Dezavantajlar |
|---|---|---|
| Callbacks | Başlanğıcda sadə | "Callback hell", xəta idarəetməsində çətinlik |
| Promisler | Daha yaxşı oxunaqlıq, xəta idarəetməsi | Zəncirli əməliyyatlarda çətinlik yarada bilər |
| Async/await | Yüksək oxunaqlıq, sinxron kod kimi görünür | Ətraf mühit dəstəyi tələb edir (async/await) |