4

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

它曾经是:

new StreamController.broadcast()

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

4

1 回答 1

6

根据此链接:

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

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

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

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

因此,创建一个新流并调用asBroadcastStream()它。

(但您可能还想关注这个问题:asBroadcastStream 不能被多次调用

于 2013-04-17T11:34:41.367 回答