Junior — Middle
Quelles méthodes peuvent être utilisées pour implémenter un flux de données en Dart?
sobes.tech IA
Réponse de l'IA
En Dart, pour implémenter des flux de données (streams), plusieurs approches peuvent être utilisées:
- Stream et StreamController — la méthode principale pour travailler avec les streams.
StreamControllerpermet de créer un flux auquel on peut ajouter des événements, etStreamest le flux lui-même auquel on peut s’abonner.
final controller = StreamController<int>();
controller.stream.listen((data) {
print('Reçu : $data');
});
controller.add(1);
controller.add(2);
controller.close();
- Générateurs asynchrones (async)* — permettent de créer un flux de données à l’aide d’une fonction qui retourne un
Streamet utilise le mot-cléyieldpour émettre des valeurs.
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);
- Utilisation de flux préexistants des bibliothèques — par exemple,
Stream.periodicpour des événements périodiques.
Ainsi, les méthodes principales consistent à utiliser StreamController pour créer et gérer des flux, et des générateurs asynchrones pour créer des flux avec une logique de génération de données.