0Pricing
Dart Academy · Ders

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

  1. await for ile Dinleme
  2. Tekil ve Yayın Akışları
  3. Akışları Dönüştürme: map, where, take
  4. async* ile Akış Oluşturma
← Dart Academy Sayfasına Dön