CodeBlanks Logo Icon CodeBlanks

Özet - İleri Stream'ler

broadcast, transformer ve debounce'u birleştirerek bir olay işleyici yazarsın.

Özet - İleri Stream'ler

Bu grupta ileri stream konularını işledik: broadcast stream (çok dinleyici), StreamTransformer (map/where/take), debounce ve throttle, hata yönetimi, asyncExpand.

Temel: transformer'lar tembel ve zincirlenebilir; sonlandırıcı (forEach/listen) çağrılınca veri akar. Broadcast stream çok dinleyiciye izin verir.

Hatalar onError ya da try/catch ile yakalanır; asyncExpand her öğeyi stream'a çevirip sırayla birleştirir.

Uygulama Özet: map ile büyük harfe çevir

main'i async yap. var s = Stream.fromIterable(['a', 'b']); ekle. await s.map((x) => x.toUpperCase()).forEach(print); ekle.

Başlangıç kodu

main.dart
void main() {
  // async yap; ['a','b'] stream'ı oluştur; map ile büyük harfe çevir; forEach ile yazdır
}

Örnek çözüm

main.dart
void main() async {
  var s = Stream.fromIterable(['a', 'b']);
  await s.map((x) => x.toUpperCase()).forEach(print);
}

Beklenen çıktı

A
B

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Çok dinleyici için hangisi?

  • map
  • asBroadcastStream Doğru cevap
  • take
  • asyncExpand

Açıklama: asBroadcastStream çok dinleyiciye izin verir.

2 Kavramları eşleştir

Kavram Anlamı
asBroadcastStream Çok dinleyici
.map Dönüştür
.take İlk n
asyncExpand Öğe → Stream

3 Hata yakalama

Soru
var t = s.____((e) => print('hata'));
Cevap
var t = s.handleError((e) => print('hata'));

Açıklama: handleError hataları yakalar.

İleri seviye bölümündeki tüm dersler