Проще говоря:
Как проверить, отменена ли подписка на StreamSubscription?
Здесь нет
_myCustomSub.isCanceled
Проще говоря:
Как проверить, отменена ли подписка на StreamSubscription?
Здесь нет
_myCustomSub.isCanceled
Кажется, вам придется использовать один из двух методов:
await
будущее, которое сигнализирует об отмене подписки на StreamSubscription.Не знаю другого способа.
Я думаю, это может быть то, что вы ищете:
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
Да, как говорили другие, это немного отстойно, что нет возможности проверить, отменена ли подписка на поток. Я предполагаю, что у вас нет доступа к StreamController
, так что вот два моих варианта.
Установите _myCustomSub
на null
как знак отмены подписки и действуйте соответственно.
Другим способом было бы иметь значение bool
(isSubCanceled
) где-то вместе с переменной _myCustomSub
и использовать его вместо _myCustomSub.isCanceled
.