Метод pause
- [Future<
void>? resumeSignal]
Запрашивает паузу потока событий до дальнейших уведомлений.
Во время паузы подписка не будет генерировать никакие события. Если она получит события от своего источника, они будут буферизованы до возобновления подписки. Для не-рассыльных потоков основной источник обычно получает информацию о паузе, поэтому он может прекратить генерировать события до возобновления подписки.
Чтобы избежать буферизации событий в рассылке, лучше отменить эту подписку и начать прослушивать снова, когда нужны события, если промежуточные события не важны.
Если resumeSignal предоставлено, подписка на поток отменит паузу, когда будущее завершится, так же, как при вызове resume. Если будущее завершится с ошибкой, поток все равно возобновится, но ошибка будет считаться необработанной и передается в Zone.handleUncaughtError.
Вызов resume также отменит паузу.
Если подписка приостанавливается более одного раза, для возобновления потока необходимо выполнить такое же количество возобновлений. Вызовы resume и завершение resumeSignal взаимозаменяемы — пауза, для которой был передан resumeSignal, может быть завершена вызовом resume, а завершение resumeSignal может завершить другую паузу pause.
Безопасно вызвать resume или завершить resumeSignal даже когда подписка не приостановлена, и возобновление не окажет никакого эффекта.
Реализация
void pause([Future<void>? resumeSignal]);
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-async/StreamSubscription/pause.html