Puede que se de el caso de que encuentres alguna incompatibilidad en tu código o proyecto, recuerda probar siempre en un entorno de testing antes aplicar el código al proyecto final.
Solución:
Sink
y Stream
ambos son partes del StreamController
. Agregas un dato a la StreamController
usando Sink
que se puede escuchar a través del Stream
.
Ejemplo:
final _user = StreamController();
Sink get updateUser => _user.sink;
Stream get user => _user.stream;
Uso:
updateUser.add(yourUserObject); // This will add data to the stream.
Cada vez que se agreguen datos a la transmisión a través del sumidero, se emitirán y se podrán escuchar con el método de escucha.
user.listen((user) => print(user));
Puede realizar varias acciones antes de que se emita la secuencia. transform
El método es un ejemplo que se puede usar para transformar los datos de entrada antes de que se emitan.
A StreamSink
es un StreamConsumer
lo que significa que puede tomar varios flujos (agregado por addStream
) y procesa los eventos que emiten estos flujos.
si es el StreamSink
de un StreamController
entonces todos los eventos de los flujos agregados son emitidos por el flujo creado por el StreamController
.
De esta manera, puede canalizar (reenviar) uno o más flujos a otro.
Si está buscando definiciones muy básicas sobre flujo y sumideros, consulte esto:
Corriente – la cinta transportadora se llama corriente
controlador de flujo – esto es lo que controla la corriente
Transformador de corriente – esto es lo que procesa los datos de entrada
StreamBuilder – es un método que toma la transmisión como entrada y nos proporciona un generador que se reconstruye cada vez que hay un nuevo valor de una transmisión
pileta – la propiedad que toma una entrada
corriente – la propiedad que da la salida de Stream
Para obtener más detalles, consulte este artículo.
valoraciones y reseñas
Si para ti ha sido provechoso este post, nos gustaría que lo compartas con otros seniors de esta forma contrubuyes a extender nuestro contenido.