Sobes.tech
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ů:

  1. Stream a StreamController — hlavní způsob práce se streamy. StreamController umožňuje vytvářet tok, do kterého lze přidávat události, a Stream je 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();
  1. Asynchronní generátory (async)* — umožňují vytvářet datové toky pomocí funkce, která vrací Stream a používá klíčové slovo yield k 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);
  1. Použití hotových toků z knihoven — například Stream.periodic pro 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.