Junior — Middle
Ce metode pot fi utilizate pentru a implementa un flux de date în Dart?
sobes.tech AI
Răspuns de la AI
În Dart, pentru implementarea fluxurilor de date (streams), se pot folosi mai multe abordări:
- Stream și StreamController — metoda principală de lucru cu fluxurile.
StreamControllerpermite crearea unui flux la care se pot adăuga evenimente, iarStreameste fluxul propriu-zis, la care se poate abona.
final controller = StreamController<int>();
controller.stream.listen((data) {
print('Primite: $data');
});
controller.add(1);
controller.add(2);
controller.close();
- Generatori asincroni (async)* — permit crearea unui flux de date cu ajutorul unei funcții care returnează
Streamși folosește cuvântul cheieyieldpentru a emite valori.
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);
- Utilizarea fluxurilor gata făcute din biblioteci — de exemplu,
Stream.periodicpentru evenimente periodice.
Astfel, metodele principale sunt utilizarea StreamController pentru crearea și gestionarea fluxurilor și generatorii asincroni pentru crearea fluxurilor cu logică de generare a datelor.