0Pricing
Dart Academy · Lektion

Single- und Broadcast-Streams

Den passenden Stream für viele Listener auswählen

Single- und Broadcast-Streams ist eine kostenlose Dart Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Dart Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.

Zwei Arten von Streams

Dart-Streams gibt es in zwei Varianten: Single-Subscription und Broadcast. Welche Variante Sie wählen, hängt davon ab, wie viele Listener Sie benötigen.

Single-Subscription-Streams

Ein Single-Subscription-Stream erlaubt während seiner gesamten Lebensdauer genau einen Listener. Das ist die Standardeinstellung und eignet sich ideal für eine einmalige Sequenz, etwa beim Lesen einer Datei. 📄

Nur einmal abhören

Wenn Sie versuchen, einen Single-Subscription-Stream zweimal abzuhören, löst Dart einen StateError aus. Der Stream merkt sich, dass er bereits seinen einen Listener hat.

final s = Stream.fromIterable([1, 2]);
s.listen(print);
s.listen(print); // throws StateError

Bis zum Abhören gepuffert

Ein Single-Subscription-Stream wartet geduldig. Er erzeugt keine Ereignisse, bevor jemand mit dem Abhören beginnt, sodass kein Wert verloren geht.

Broadcast-Streams

Ein Broadcast-Stream ermöglicht es vielen Listenern, ihn gleichzeitig zu abonnieren. Jeder aktive Listener erhält dieselben Ereignisse, sobald sie eintreffen. 📡

In einen Broadcast-Stream umwandeln

Wandeln Sie einen Single-Subscription-Stream in einen gemeinsam genutzten Stream um, indem Sie asBroadcastStream aufrufen. Nun können mehrere Listener ihn abonnieren.

final shared = source.asBroadcastStream();
shared.listen(print);
shared.listen((v) => log(v));

Späte Listener verpassen Ereignisse

Broadcast-Streams puffern keine Ereignisse. Ein Listener, der sich spät anmeldet, sieht nur Ereignisse, die ab diesem Zeitpunkt ausgegeben werden, niemals die vorherigen.

Controller bestimmen den Typ

Ein StreamController erstellt standardmäßig einen Single-Subscription-Stream. Verwenden Sie den Broadcast-Konstruktor, wenn Sie stattdessen mehrere Listener benötigen.

final ctrl = StreamController<int>.broadcast();
ctrl.stream.listen(print);

Wann Sie Single-Subscription verwenden

Verwenden Sie einen Single-Subscription-Stream, wenn Daten einmalig zu einem Verbraucher fließen, beispielsweise die Bytes einer Netzwerkantwort oder einer gelesenen Datei.

Wann Sie Broadcast verwenden

Wählen Sie einen Broadcast-Stream für fortlaufende Ereignisse, die für viele Teile Ihrer App relevant sind, etwa Tastenbetätigungen oder Live-Aktualisierungen von Sensoren.

Vor dem Abhören prüfen

Nicht sicher, welchen Typ Sie haben? Die Eigenschaft isBroadcast gibt Ihnen Auskunft, sodass Sie den StateError vermeiden können, der beim zweimaligen Abhören eines Single-Subscription-Streams entsteht.

if (!stream.isBroadcast) {
  // only one listener allowed
}

Kurzer Wissenstest

Welcher Stream eignet sich für viele Listener?

Zusammenfassung

Single-Subscription-Streams bedienen einen Listener und puffern, bis gelesen wird; Broadcast-Streams bedienen viele Listener, überspringen jedoch bereits vergangene Ereignisse. Wählen Sie den Stream nach der Anzahl der Listener aus. 🎉

Häufig gestellte Fragen

Ist die Lektion „Single- und Broadcast-Streams“ kostenlos?

Ja — der vollständige Text von „Single- und Broadcast-Streams“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Dart Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Single- und Broadcast-Streams“?

Den passenden Stream für viele Listener auswählen Du übst Dart Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Dart Academy zu starten?

Keine Vorkenntnisse erforderlich. Dart Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Single- und Broadcast-Streams“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Dart Academy-Lektion Code schreiben und ausführen?

Ja. Jede Dart Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Mit await for zuhören
  2. Single- und Broadcast-Streams
  3. Streams transformieren: map, where, take
  4. Streams mit async* erstellen
← Zurück zu Dart Academy