Junior — Middle
¿Qué métodos se pueden usar para implementar un flujo de datos en Dart?
sobes.tech AI
Respuesta de la IA
En Dart, para implementar flujos de datos (streams), se pueden usar varios enfoques:
- Stream y StreamController — la forma principal de trabajar con streams.
StreamControllerpermite crear un stream al que se pueden agregar eventos, yStreames el propio stream al que se puede suscribir.
final controller = StreamController<int>();
controller.stream.listen((data) {
print('Recibido: $data');
});
controller.add(1);
controller.add(2);
controller.close();
- Generadores asíncronos (async)* — permiten crear un stream de datos mediante una función que devuelve
Streamy usa la palabra claveyieldpara emitir valores.
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);
- Uso de streams predefinidos de bibliotecas — por ejemplo,
Stream.periodicpara eventos periódicos.
De esta forma, los métodos principales son usar StreamController para crear y gestionar streams y generadores asíncronos para crear streams con lógica de generación de datos.