dart – streamController.add()和streamController.sink.add()之间有什么区别?

前端之家收集整理的这篇文章主要介绍了dart – streamController.add()和streamController.sink.add()之间有什么区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道有两种方法可以将数据添加到流控制器,一种是通过使用接收器直接添加数据.我试图阅读Sink的文档,但我无法理解它的概念,如管道数据等.

解决方法

没有.这在内部做同样的事情.

.sink属性的真正目的是将其作为其他对象的参数传递.如 :

MyClass(
  sink: myController.sink,)

这可以防止类访问他们无法访问的属性.

但StreamController实现了Sink,那有什么意义呢?

好吧.但是将StreamController转换为Sink与创建Sink不同.

例如,使用Sink的类可以很好地执行以下操作:

StreamSink sink = StreamController();
if (sink is StreamController) { // this is true
    // access StreamController custom methods
}

接收器字段用于防止这种情况发生.它转化为以下内容

StreamSink sink = StreamController().sink;
if (sink is StreamController) { // false this time
   // never reached
}

猜你在找的Flutter相关文章