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

  1. Stream y StreamController — la forma principal de trabajar con streams. StreamController permite crear un stream al que se pueden agregar eventos, y Stream es 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();
  1. Generadores asíncronos (async)* — permiten crear un stream de datos mediante una función que devuelve Stream y usa la palabra clave yield para 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);
  1. Uso de streams predefinidos de bibliotecas — por ejemplo, Stream.periodic para 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.