使用多个订阅者创建流

时间:2013-04-17 11:15:06

标签: dart

创建和使用具有多个订阅者的流的最佳方法是什么?

过去是:

new StreamController.broadcast()

但是那个构造函数在M4中消失了。

1 个答案:

答案 0 :(得分:6)

根据这个链接:

https://groups.google.com/a/dartlang.org/d/msg/misc/KJrKH5-bNkU/CjpIpEP_EpgJ

  

使用r21499,我们删除了StreamController.broadcast构造函数。

     

StreamController.broadcast流具有令人讨厌的属性,很容易导致错过事件和类似的难以调试的条件。   我们最初为html库添加了这个类,但最终不需要它。通过删除这个类,我们可以为Streams提供更清晰的合同。

     

我们仍然保留了asBroadcastStream方法。它的行为与StreamController.broadcast的行为略有不同。   在大多数情况下,如果您需要附加多个侦听器,则可以尝试迁移到asBroadcastStream

因此,创建一个新流,并在其上调用asBroadcastStream()

(但您可能还想留意这个问题:asBroadcastStream can't be called multiple times