Junior — Middle
Jakými metodami lze implementovat datový tok v Dart?
sobes.tech AI
Odpověď od AI
V Dart lze pro implementaci datových toků (streams) použít několik přístupů:
- Stream a StreamController — hlavní způsob práce se streamy.
StreamControllerumožňuje vytvářet tok, do kterého lze přidávat události, aStreamje samotný tok, na který se lze přihlásit.
final controller = StreamController<int>();
controller.stream.listen((data) {
print('Přijato: $data');
});
controller.add(1);
controller.add(2);
controller.close();
- Asynchronní generátory (async)* — umožňují vytvářet datové toky pomocí funkce, která vrací
Streama používá klíčové slovoyieldk emitování hodnot.
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);
- Použití hotových toků z knihoven — například
Stream.periodicpro periodické události.
Hlavní metody jsou tedy použití StreamController pro tvorbu a správu toků a asynchronní generátory pro jednoduché vytváření toků s logikou generování dat.