如何检查是否有任何活动流已被收听?

San*_*kil 3 stream dart flutter

有没有办法检查 Dart/Flutter 中是否有已监听的活动 Stream?

假设有一个 Stream 在一个 Screen 上已被监听。但是,我需要在另一个屏幕上收听该流。所以我需要检查是否有任何已收听的活动流。

Sah*_*ane 7

您必须使用 的方便getterStreamController来检查流是否已被监听。StreamControllerhasListener

这是需要理解的最少示例代码:

StreamController controller = StreamController();
controller.addStream(getNumbersAsStream());

controller.stream.listen((e) => print(e));
if (!controller.hasListener) {
  controller.stream.listen((e) => print(e));
} else {
  print("Stream has already been listened");
}
Run Code Online (Sandbox Code Playgroud)