Sink, Stream, StreamController, StreamTransformer | Flutter
-
Sink e Stream | Flutter
Qual é a diferença entre Sink e Stream no Flutter?
StreamSink é um StreamConsumer, o que significa que ele pode receber vários streams e processar os eventos que esses streams emitem.
Se for o StreamSink de um StreamController, então todos os eventos dos streams adicionados são emitidos pelo stream criado pelo StreamController. Neste artigo, vamos entender a diferença entre Sink e Stream no Flutter.
Qual é a diferença entre Sink e Stream no Flutter?
Sink e Stream são ambos partes do StreamController. Além disso, você pode adicionar dados ao StreamController usando o Sink, que podem ser ouvidos via o Stream.
Um exemplo de código fica assim:
final _user = StreamController<User>();
Sink get updateUser => _user.sink;
Stream<User> get user => _user.stream;
Uso:
updateUser.add(seuObjetoUser);
Sempre que adicionamos dados ao stream através do sink, eles são emitidos. Depois disso, podem ser ouvidos usando o método listen.
user.listen((user) => print(user));
Você pode realizar várias ações antes do stream ser emitido. O método transform é um exemplo que pode ser usado para transformar os dados de entrada antes que sejam emitidos.
- Stream – o "tapete rolante" do fluxo de dados é chamado de stream.
- StreamController – o StreamController é quem controla o stream.
- StreamTransformer – o StreamTransformer é quem processa os dados de entrada.
- StreamBuilder – o StreamBuilder é um método que recebe um stream como entrada e nos fornece um builder que reconstrói a interface toda vez que há um novo valor no stream.
- Sink – o Sink é a propriedade que recebe a entrada de dados.
- Stream – o Stream é a propriedade que fornece a saída do Stream.
Se quiser, posso ajudar a adaptar esse conteúdo para um artigo, apresentação ou algo mais!