Tekil ve Yayın Akışları
Birden çok dinleyici için doğru akışı seçme
Tekil ve Yayın Akışları, CoddyKit'te ücretsiz bir Dart Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Dart Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Dart Academy kursu toplamda 4 dersten oluşur.
İki Tür Akış
Dart akışları iki türde gelir: single-subscription ve broadcast. Doğru türü seçmek, kaç dinleyiciye ihtiyaç duyduğunuza bağlıdır.
Tek Abonelikli Akışlar
single-subscription akışı, kullanım ömrü boyunca tam olarak bir dinleyiciye izin verir. Varsayılan türdür ve dosya okumak gibi tek seferlik diziler için idealdir. 📄
Yalnızca Bir Kez Dinleyin
Tek abonelikli bir akışı iki kez dinlemeyi denerseniz Dart bir StateError fırlatır. Akış, zaten tek dinleyicisine sahip olduğunu hatırlar.
final s = Stream.fromIterable([1, 2]);
s.listen(print);
s.listen(print); // throws StateErrorSiz Dinleyene Kadar Tamponlanır
Tek abonelikli bir akış sabırla bekler. Bir dinleyici başlatılana kadar olay üretmez; bu nedenle hiçbir değer kaçırılmaz.
Yayın Akışları
Bir broadcast akışı, aynı anda birçok dinleyicinin abone olmasına izin verir. Etkin olan her dinleyici, gönderildikleri anda aynı olayları alır. 📡
Yayına Dönüştürme
asBroadcastStream çağrısıyla tek abonelikli bir akışı paylaşılan bir akışa dönüştürün. Artık ona birden fazla dinleyici bağlanabilir.
final shared = source.asBroadcastStream();
shared.listen(print);
shared.listen((v) => log(v));Geç Dinleyiciler Olayları Kaçırır
Yayın akışları tamponlama yapmaz. late abone olan bir dinleyici yalnızca o andan sonra gönderilen olayları görür; önceki olayları hiçbir zaman göremez.
Denetleyiciler Türü Belirler
Bir StreamController varsayılan olarak tek abonelikli bir akış oluşturur. Birden fazla dinleyici istediğinizde broadcast yapıcısını kullanın.
final ctrl = StreamController<int>.broadcast();
ctrl.stream.listen(print);Tek Abonelikli Akış Ne Zaman Kullanılır
Veriler bir tüketiciye bir kez akıyorsa, örneğin bir ağ yanıtının baytlarında veya bir dosya okumasında, single-subscription akışını tercih edin.
Yayın Akışı Ne Zaman Kullanılır
Uygulamanızın birçok bölümünün ilgilendiği sürekli olaylar için (örneğin düğme dokunuşları veya canlı sensör güncellemeleri) broadcast akışını seçin.
Dinlemeden Önce Kontrol Edin
Hangi türe sahip olduğunuzdan emin değil misiniz? isBroadcast özelliği bunu size bildirir ve tek akışlarda iki kez dinlemeden kaynaklanan StateError'dan kaçınmanızı sağlar.
if (!stream.isBroadcast) {
// only one listener allowed
}Hızlı Kontrol
Birçok dinleyici için hangi akış uygundur?
Özet
Tek abonelikli akışlar one dinleyiciye hizmet verir ve okunana kadar tamponlar; broadcast akışları birçok dinleyiciye hizmet verir ancak geçmiş olayları atlar. Seçiminizi dinleyici sayısına göre yapın. 🎉
Sıkça Sorulan Sorular
“Tekil ve Yayın Akışları” dersi ücretsiz mi?
Evet — “Tekil ve Yayın Akışları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Dart Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Dart Academy kursu toplamda 4 dersten oluşur.
“Tekil ve Yayın Akışları” dersinde ne öğreneceğim?
Birden çok dinleyici için doğru akışı seçme Dart Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Dart Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Dart Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Tekil ve Yayın Akışları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Dart Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Dart Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- await for ile Dinleme
- Tekil ve Yayın Akışları
- Akışları Dönüştürme: map, where, take
- async* ile Akış Oluşturma