pause 抽象方法
- Future<
void> ? resumeSignal
请求流暂停事件,直到进一步的通知。
在暂停期间,订阅将不会触发任何事件。如果它从其源接收事件,它们将被缓冲,直到订阅恢复。对于非广播流,底层源通常会接收到暂停通知,以便在订阅恢复之前停止生成事件。
为了避免在广播流上缓冲事件,如果中间事件不重要,最好取消此订阅,并在需要事件时重新开始监听。
如果提供了 resumeSignal
,当未来完成时,流订阅将取消暂停,就像调用 resume 一样。如果未来完成时出现错误,流仍然会恢复,但错误将被视为未处理的,并传递给 Zone.handleUncaughtError。
调用 resume 也会取消暂停。
如果订阅暂停多次,必须执行相同数量的恢复操作以恢复流。对 resume 的调用和 resumeSignal
的完成是可互换的 - 传递给 pause
的 resumeSignal
可能通过调用 resume 来结束,而完成 resumeSignal
可能结束不同的 pause。
即使在订阅没有暂停的情况下,也可以安全地调用 resume 或完成 resumeSignal
,并且恢复将没有效果。
实现
void pause([Future<void>? resumeSignal]);