Single- eller broadcast-strømmer
Velg riktig strøm for flere lyttere.
Single- eller broadcast-strømmer er en gratis leksjon i Dart Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Dart Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Dart Academy inneholder totalt 4 leksjoner.
To typer strømmer
Dart-strømmer finnes i to varianter: single-subscription og broadcast. Hvilken du bør velge, avhenger av hvor mange lyttere du trenger.
Single-subscription-strømmer
En single-subscription-strøm tillater nøyaktig én lytter så lenge den eksisterer. Dette er standarden og passer godt for en sekvens som bare skal leses én gang, for eksempel ved lesing av en fil. 📄
Lytt bare én gang
Hvis du prøver å lytte til en single-subscription-strøm to ganger, kaster Dart en StateError. Strømmen husker at den allerede har sin ene lytter.
final s = Stream.fromIterable([1, 2]);
s.listen(print);
s.listen(print); // throws StateErrorBufres til du lytter
En single-subscription-strøm venter tålmodig. Den produserer ingen hendelser før noe begynner å lytte, så ingen verdier går tapt.
Broadcast-strømmer
En broadcast-strøm lar mange lyttere abonnere samtidig. Hver aktive lytter mottar de samme hendelsene etter hvert som de oppstår. 📡
Konverter til broadcast
Gjør en single-subscription-strøm om til en delt strøm ved å kalle asBroadcastStream. Nå kan flere lyttere koble seg til den.
final shared = source.asBroadcastStream();
shared.listen(print);
shared.listen((v) => log(v));Sene lyttere går glipp av hendelser
Broadcast-strømmer bufrer ikke. En lytter som abonnerer sent, ser bare hendelser som sendes ut fra det tidspunktet og videre, aldri de tidligere.
Controllere velger typen
En StreamController oppretter som standard en single-subscription-strøm. Bruk broadcast-konstruktøren når du vil ha flere lyttere.
final ctrl = StreamController<int>.broadcast();
ctrl.stream.listen(print);Når du bør bruke single
Velg en single-subscription-strøm når data flyter én gang til én mottaker, for eksempel byte fra et nettverkssvar eller innholdet i en fil.
Når du bør bruke broadcast
Velg en broadcast-strøm for kontinuerlige hendelser som mange deler av appen bryr seg om, for eksempel knappetrykk eller oppdateringer fra sensorer i sanntid.
Kontroller før du lytter
Er du usikker på hvilken type du har? Egenskapen isBroadcast forteller deg det, slik at du kan unngå StateError ved å lytte to ganger til single-strømmer.
if (!stream.isBroadcast) {
// only one listener allowed
}Hurtigsjekk
Hvilken strøm passer for mange lyttere?
Oppsummering
Single-subscription-strømmer betjener én lytter og bufrer til de blir lest, mens broadcast-strømmer betjener mange, men hopper over tidligere hendelser. Velg ut fra antallet lyttere. 🎉
Lær deg Dart med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Single- eller broadcast-strømmer» gratis?
Ja – hele teksten i «Single- eller broadcast-strømmer» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Dart Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Dart Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Single- eller broadcast-strømmer»?
Velg riktig strøm for flere lyttere. Du øver på Dart Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Dart Academy?
Ingen tidligere erfaring er nødvendig. Dart Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Single- eller broadcast-strømmer»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Dart Academy-leksjonen?
Ja. Alle Dart Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Lytt med await for
- Single- eller broadcast-strømmer
- Transformer strømmer: map, where og take
- Opprett strømmer med async*