Junior — Middle
Akými metódami je možné implementovať tok dát v Dart?
sobes.tech AI
Odpoveď od AI
V Dart-e je možné naimplementovať prúdy dát (streams) pomocou viacerých prístupov:
- Stream a StreamController — hlavný spôsob práce s prúdmi.
StreamControllerumožňuje vytvoriť prúd, do ktorého je možné pridávať udalosti, aStreamje samotný prúd, na ktorý sa môžete prihlásiť.
final controller = StreamController<int>();
controller.stream.listen((data) {
print('Prijaté: $data');
});
controller.add(1);
controller.add(2);
controller.close();
- Asynchrónni generátori (async)* — umožňujú vytvárať dátové prúdy pomocou funkcie, ktorá vracia
Streama používa kľúčové slovoyieldna emitovanie hodnôt.
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žitie hotových prúdov z knižníc — napríklad,
Stream.periodicpre periodické udalosti.
Takže, hlavné metódy sú použitie StreamController na vytváranie a správu prúdov a asynchrónni generátori na jednoduché vytváranie prúdov s logikou generovania dát.