Eşzamansız JavaScript ve olay döngüsü
Olay döngüsünü, görev ve mikro görev kuyruklarını, Promise birleştiricilerini ve iptal desenlerini öğrenerek bekleyen, yarışan ve hata veren eşzamansız kodu doğru yönetirsin.
Seviye 301 · 16 ders · 15 pratik lab
Dersler
Olay döngüsü
- Çağrı yığını ve tek iş parçacığı
- Görevler ve mikro görevler
- Node olay döngüsünün evreleri
- Engelleyen kodu tanımak
- Kısa görev: çıktı sırasını önceden tahmin et
Promise ve async
- Geri çağrılardan Promise’e
- Promise zincirleri ve hataların yayılması
- Promise.all, allSettled, race ve any
- for await ve eşzamansız yineleyiciler
- AbortController ile iptal
- Yakalanmamış retler ve genel işleyiciler
- Kısa görev: sınırlı eşzamanlılıkla toplu indirme
Desenler
- Yeniden deneme ve üstel bekleme
- İş kuyruğu ve eşzamanlılık sınırı
- Ağır işi iş parçacığına taşımak
- Bitirme görevi: dayanıklı bir veri toplayıcı
Pratik lablar
- Sunucuyu donduran kodu bul: Rapor üretilirken diğer isteklere yanıt vermeyen bir Node sunucusunda olay döngüsünü tıkayan kodu bul.
- Mikro görev açlığını göster: Kendini sürekli yeniden kuyruğa koyan bir promise zincirinin zamanlayıcıları nasıl beklettiğini ölçüp düzelt.
- Ağır döngüyü parçalara böl: Yüz bin kaydı işleyen döngüyü setImmediate ile parçalara bölerek sunucunun yanıt süresini koru.
- İç içe geri çağırmaları düzleştir: Üç katmanlı geri çağırmalı dosya okuma kodunu async/await ile düz bir akışa çevir.
- Yutulan hatayı bul: Zincirde unutulan bir return yüzünden hata yakalanmıyor ve sonuç undefined geliyor; hatayı bulup düzelt.
- Yakalanmamış reddetmenin kaynağını bul: Ara sıra sessizce çöken bir işçi sürecine global reddetme dinleyicisi ekleyip hatanın kaynağını bul.
- Üç isteği paralel çalıştır: Sırayla bekleyen üç bağımsız servis çağrısını Promise.all ile paralelleştirip süreyi ölç.
- Bir şube bozulunca raporu kaybetme: Beş şubenin stok raporunu toplarken bir şube hata verince diğerlerini allSettled ile yine de raporla.
- En hızlı yansıyı seç: Üç yansı sunucudan ilk başarılı yanıtı any ile al, kalan istekleri AbortController ile iptal et.
- Uzun indirmeyi iptal et: Kullanıcı vazgeçince süren indirmeyi AbortController ile durduran bir fonksiyon yaz.
- Sayfalı API'yi for await ile gez: Lab'daki sayfalı sipariş servisini async generator ile gezip tüm kayıtları tek akışta işle.
- İptal sinyalini katmanlara geçir: İç içe üç eşzamansız fonksiyon çağıran bir aramanın iptal edilince tamamen durmasını sağla.
- Geçici hatada yeniden dene: Ara sıra 503 dönen bir servis için üç denemeli basit bir yeniden deneme sarmalayıcısı yaz.
- Üstel geri çekilmeye rastgelelik ekle: Aynı anda yeniden deneyen yüz istemcinin servisi boğmasını jitter'lı üstel geri çekilmeyle önle.
- Özet hesabını worker thread'e taşı: Parola özeti hesaplayan yavaş bir uç noktayı worker_threads'e taşıyıp diğer isteklerin gecikmesini karşılaştır.
Kurs hakkında
Olay döngüsünü, görev ve mikro görev kuyruklarını, Promise birleştiricilerini ve iptal desenlerini öğrenerek bekleyen, yarışan ve hata veren eşzamansız kodu doğru yönetirsin.
Ne öğreneceksin
- Olay döngüsü
- Promise ve async
- Desenler
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 301 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.