async* ile Akış Oluşturma
Bir üreticiden olaylar üretme
async* ile Akış Oluşturma, CoddyKit'te ücretsiz bir Dart Academy dersidir. Bu, 4 dersinin 4. 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.
Kendi Akışlarınızı Üretme
Şimdiye kadar başkalarının oluşturduğu akışları tükettiniz. Artık olay göndermenin en temiz yolu olan bir async generator kullanarak akışları kendiniz üreteceksiniz.
async* Anahtar Sözcüğü
Bir işlevi async* olarak işaretlediğinizde bu işlev bir akış üreticisine dönüşür. Dönüş türü Stream olur ve zaman içinde değerler gönderebilir.
Stream<int> countTo(int n) async* {
// body uses yield
}yield Bir Değer Gönderir
Bir async* işlevinin içinde yield, akışa tek bir değer gönderir. Yürütme, dinleyici daha fazlasını almaya hazır olana kadar burada duraklar.
Stream<int> oneTwo() async* {
yield 1;
yield 2;
}Döngü İçinde yield
Birçok değer göndermek için yield ile bir döngüyü birleştirin. Her yineleme bir sonraki sayıyı otomatik olarak akışa gönderir.
Stream<int> countTo(int n) async* {
for (var i = 1; i <= n; i++) yield i;
}async* İçinde await
İşlev async olduğundan yield ifadeleri arasında await kullanabilirsiniz. Böylece bir sonraki olayı göndermeden önce veri alabilir veya bekleyebilirsiniz.
Stream<int> ticker() async* {
while (true) {
await Future.delayed(Duration(seconds: 1));
yield DateTime.now().second;
}
}yield* Bir Akışı İletir
Üreticinizin içinden başka bir akışın her olayını göndermek için yield* kullanın. Böylece o akışın tamamını kendi akışınıza eklersiniz.
Stream<int> combined() async* {
yield* countTo(3);
yield 99;
}Dinlenene Kadar Tembel
Bir async* işlevi, biri dinlemeye başlayana kadar çalışmaya başlamaz. Gövde yalnızca dinleyici her değeri istediğinde yürütülür. ⏸️
Duraklama Dinleyiciye Uyar
Bir dinleyici duraklarsa üretici de bir sonraki yield noktasında duraklar. Bu geri basınç, üreticilerin tüketicileri aşırı yüklemesini önler.
async* Kaynaklı Hatalar
Bir async* işlevinin içindeki throw, akışta bir hata olayına dönüşür. Dinleyiciler bunu diğer akış hataları gibi yakalayabilir.
Stream<int> risky() async* {
yield 1;
throw 'boom';
}Üreticinizi Tüketme
Ürettiğiniz akışı her zamanki gibi await for ile okuyun. yield ile gönderilen her değer sırayla döngüye aktarılır.
await for (final n in countTo(3)) {
print(n);
}async* ve StreamController Karşılaştırması
Çekme tabanlı, sıralı çıktılar için async*, StreamController'dan daha basittir. Denetleyiciyi yalnızca olaylar dış geri çağırmalardan geldiğinde tercih edin.
Hızlı Kontrol
Bir async* işlevinden nasıl değer gönderirsiniz?
Özet
async* ile akışlar oluşturdunuz, yield aracılığıyla değerler gönderdiniz, yield* ile ilettiniz ve olaylar arasında await kullandınız. Artık hem akışları tüketebilir hem de üretebilirsiniz. 🎉
Sıkça Sorulan Sorular
“async* ile Akış Oluşturma” dersi ücretsiz mi?
Evet — “async* ile Akış Oluşturma” 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.
“async* ile Akış Oluşturma” dersinde ne öğreneceğim?
Bir üreticiden olaylar üretme 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 4. dersidir.
“async* ile Akış Oluşturma” 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