2014-09-28 2 views

ответ

3

Ожидается, что A StreamSubscription будет сохранять события во время паузы. Он может передать состояние паузы на свой источник, чтобы избежать завалки, но даже если он не может, он будет буферизовать данные, пока не закончится память.

Для широковещательного потока, где события обычно не являются частью большего целого, вам могут не потребоваться события. В этом случае вы можете отменить подписку и создать новую, когда вам нужны события снова. Широковещательные потоки должны, как правило, разрешать повторную подписку после отмены, но некоторые из них могут быть настроены таким образом, что это невозможно, например, путем удаления ресурсов после того, как последний клиент отменяет.

Для одного потока подписки, где события часто представляют собой последовательность фрагментов более крупной вещи, события сбрасывания, вероятно, никогда не произойдут.

+0

Спасибо за объяснение! вы знаете, какая ошибка отслеживает поведение DOM мы упомянули в моем ответе? –

0

Документов также включить этот текст:

В настоящее время DOM потоков молча падение событий, когда поток приостанавливается. Это ошибка и будет исправлена.

Это предполагает, что намерение заключается в том, что события будут буферизованы, а затем освобождены после того, как вы остановитесь. Если вы не хотите получать события в течение этого периода, вам лучше всего отменить и переадресовать.

+0

Ссылка на вопрос будет замечательной. –

+1

Я искал, но не смог найти его в трекере; я мог только найти фиксацию, которая добавила эту строку в документы, но не было номер ошибки :( –

+0

Это выглядит связанным, но уже исправленным 8/2013 http://dartbug.com/9700 Этот http://dartbug.com/ 10201 для широковещательных потоков, где он не поддерживается, и проблема была закрыта как «WontFix». –

Смежные вопросы