Özet - İleri Stream'ler
- Dart kursu
- İleri seviye
- Ders 18/83
- 5 dk
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
void main() {
// async yap; ['a','b'] stream'ı oluştur; map ile büyük harfe çevir; forEach ile yazdır
}Örnek çözüm
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
var t = s.____((e) => print('hata'));
var t = s.handleError((e) => print('hata'));
Açıklama: handleError hataları yakalar.