2014-09-28 95 views

回答

3

A StreamSubscription总是期望在暂停时缓冲事件。 它可能会将暂停状态传递给它的源代码以避免被淹没,但即使它不能,也会缓冲数据直到内存不足。

对于广播流而言,其中事件通常不是更大整体的一部分,您可能不需要这些事件。在这种情况下,您可以取消订阅并在您再次需要事件时创建一个新订阅。广播流通常应允许在取消后重新订阅,但有些可能已经建立,以至于不可能,例如,在最后一个客户端取消后,放弃其资源。

对于单个订阅流,其中事件通常是更大事物的一系列块,所以放弃事件可能永远不会发生。

+0

感谢您的解释!您碰巧知道哪个错误正在跟踪DOM行为我的答案中提到了我们? – 2014-09-29 10:54:01

0

该文档还包括这样的文字:

目前DOM流自动删除事件时流暂停。这是一个错误,将被修复。

这表明,意图是事件将被缓冲,然后在您取消暂停后发布。如果您不希望在此期间收到活动,最好取消并重新订阅。

+0

问题的链接会很好。 – 2014-09-28 16:35:53

+1

我做了搜索,但无法在跟踪器中找到它;我只能找到一个提交,将此行添加到文档,但没有错误编号:( – 2014-09-28 16:53:01

+0

这看起来相关但已经修复8/2013 http://dartbug.com/9700 http://dartbug.com/这个http://dartbug.com/ 10201适用于不支持广播流的问题,并且问题已经以'WontFix'结尾。 – 2014-09-28 16:56:49