Метод resume
Метод resume класса StreamSubscription возобновляет
приостановленную подписку на поток данных. Он используется
после метода pause, чтобы снова начать получать события
из потока. Метод не принимает параметров и ничего не возвращает.
Синтаксис
subscription.resume()
Пример
Давайте создадим поток, приостановим подписку и затем возобновим её:
import 'dart:async';
void main()
{
StreamController<int> controller = StreamController<int>();
StreamSubscription<int> subscription;
subscription = controller.stream.listen((value) {
print(value);
});
controller.add(1);
controller.add(2);
subscription.pause();
print('paused');
subscription.resume();
print('resumed');
controller.add(3);
controller.close();
}
Результат выполнения кода:
1
2
"paused"
"resumed"
3
Пример
Давайте приостановим подписку с задержкой и возобновим её после паузы:
import 'dart:async';
void main()
{
StreamController<int> controller = StreamController<int>();
StreamSubscription<int> subscription;
subscription = controller.stream.listen((value) {
print('received: $value');
});
controller.add(1);
subscription.pause(Future.delayed(Duration(seconds: 1)));
print('pause scheduled');
subscription.resume();
print('resumed immediately');
controller.add(2);
controller.close();
}
Результат выполнения кода:
"received: 1"
"pause scheduled"
"resumed immediately"
"received: 2"
Смотрите также
-
класс
StreamSubscription,
который представляет подписку на поток -
метод
pause,
который приостанавливает подписку -
метод
cancel,
который отменяет подписку -
метод
listen,
который создаёт подписку на поток