什么是flutter中的streamcontroller中的接收器

时间:2019-08-01 00:00:38

标签: flutter

在该代码ctrl streamController中,带有sink和没有sink的两个都打印数据 我不明白为什么我们需要sink

final StreamController ctrl = StreamController();
  final StreamSubscription subscription = ctrl.stream.listen((data) => print('$data'));

  ctrl.sink.add('Hello Stream');
  ctrl.add('Hello Stream');

1 个答案:

答案 0 :(得分:0)

接收器在StreamSinkWrapper中添加“ Hello Stream”,然后运行ctrl.add()

包装器可能会通过更新来处理您现在或将来可能不知道的事情。例如,它有一个close方法,所以如果不使用接收器,可能会导致内存泄漏。

因此,尽管您可以使用不带接收器的streamController,但这并不意味着您应该这样做。