Проверьте, отменена ли StreamSubscription - PullRequest
0 голосов
/ 29 октября 2019

Проще говоря:

Как проверить, отменена ли подписка StreamSubscription?

Нет

_myCustomSub.isCanceled

Ответы [ 2 ]

0 голосов
/ 29 октября 2019

Я думаю, это может быть то, что вы ищете:

final streamController = StreamController();
streamController.onCancel = (){};

Согласно документации: Создание потоков в Dart

Ожиданиеподписка

Чтобы получать уведомления о подписках, укажите аргумент onListen при создании StreamController. Обратный вызов onListen вызывается, когда поток получает своего первого подписчика. Если вы указываете обратный вызов onCancel, он вызывается, когда контроллер теряет своего последнего подписчика.

Окончательные подсказки

onListen, onPause, onResume,и обратные вызовы onCancel, определенные StreamController, вызываются потоком, когда состояние слушателя потока изменяется

Кроме того, это может быть полезно:

//Whether there is a subscriber on the [Stream]
streamController.hasListener
0 голосов
/ 29 октября 2019

Кажется, вам нужно использовать один из двух методов:

  1. метод onDone - и сохранить в отдельной переменной независимо от того, был ли поток закрыт, или ..
  2. метод отмены - и await будущее, которое сигнализирует об отмене подписки StreamSub.

Не знаю других способов.

...