Usare gli Stream in Dart
Uno stream in Dart è sostanzialmente una sequenza di eventi che rappresentano dei valori che arriveranno in maniera asincrona.
Che detto così vuol dire poco o nulla in realtà....
Quindi in questo articolo vediamo qualche esempio in modo da capire.
Cominciamo con il più basico:
final stream = Stream.value('MATTEPUFFO');
stream.listen((ev) => print(ev));
Volendo possiamo visualizzare un evento in fase di fine o di errore:
final stream = Stream.value('MATTEPUFFO');
stream.listen(
(ev) => print(ev),
onDone: () => print('FATTO'),
onError: (error) => print(error.toString()),
);
Possiamo anche crearlo a partire da una lista:
Stream.fromIterable(['nome 1', 'nome 2', 'nome 3']).listen(
print,
onError: print,
onDone: () => print('FATTO'),
);
Un'altra cosa interessante è la possibilità di creare degli eventi periodici:
Stream.periodic(Duration(seconds: 5), (int i) {
if (i % 2 == 0) {
return 'OK';
} else {
return 'KO';
}
}).listen(
print,
onError: print,
onDone: () => print('FATTO'),
);
Come ultimo esempio vi propongo la possibilità di creare uno Stream da Future:
Future<String> ftTest() async {
return 'CIAO';
}
Stream.fromFuture(ftTest()).listen(
print,
onError: print,
onDone: () => print('FATTO'),
);
Enjoy!
dart flutter stream future
Commentami!