pause 抽象方法

void pause(
  1. [Future<void>? resumeSignal]
)

请求使流暂停事件,直到进一步的通知。

暂停期间,订阅将不会触发任何事件。如果它从其源接收事件,它们将被缓存在订阅恢复为止。对于非广播流,底层源头通常会收到暂停的通知,因此它可以停止生成事件,直到订阅恢复。

为了避免在广播流中缓冲事件,如果中间的事件不重要,最好取消此订阅,并在需要事件时再次开始监听。

如果提供了 resumeSignal,则在 futures 完成(仿佛通过调用 resume)时,流订阅将撤销暂停。如果 futures 完成错误,流将继续恢复,但错误将被认为是未处理的并且传递到 Zone.handleUncaughtError

调用 resume 也会撤销暂停。

如果订阅暂停多次,则需要执行相同数量的恢复以恢复流。调用 resumeresumeSignal 的完成是可互换的 - 传递了 resumeSignalpause 可以通过调用 resume 来结束,完成 resumeSignal 则可以结束不同的 pause

即使订阅没有被暂停,也可以安全地调用 resume 或完成一个 resumeSignal,并且恢复将没有任何效果。

实现

void pause([Future<void>? resumeSignal]);