Junior — Middle
Jakie metody można wykorzystać do implementacji strumienia danych w Dart?
sobes.tech AI
Odpowiedź od AI
W Dart można używać kilku podejść do implementacji strumieni danych (streams):
- Stream i StreamController — główny sposób pracy ze strumieniami.
StreamControllerpozwala tworzyć strumień, do którego można dodawać zdarzenia, aStreamto sam strumień, na który można się subskrybować.
final controller = StreamController<int>();
controller.stream.listen((data) {
print('Otrzymano: $data');
});
controller.add(1);
controller.add(2);
controller.close();
- Generatorzy asynchroniczni (async)* — pozwalają tworzyć strumień danych za pomocą funkcji, która zwraca
Streami używa słowa kluczowegoyielddo emitowania wartości.
Stream<int> countStream(int to) async* {
for (int i = 1; i <= to; i++) {
yield i;
await Future.delayed(Duration(seconds: 1));
}
}
countStream(3).listen(print);
- Użycie gotowych strumieni z bibliotek — na przykład
Stream.periodicdo okresowych zdarzeń.
Podsumowując, główne metody to użycie StreamController do tworzenia i zarządzania strumieniami oraz generatorów asynchronicznych do tworzenia strumieni z logiką generowania danych.