2014-09-28 18 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

相關問題