【问题标题】:How to check if any active Stream has already been listened to?如何检查是否已经收听了任何活动的流?
【发布时间】:2021-11-16 18:09:36
【问题描述】:

有什么方法可以检查 Dart/Flutter 中是否有任何活动的 Stream 已经被监听过?

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

【问题讨论】:

  • 您可以声明一个布尔值,如果正在收听流,则使其为真。然后将其传递给其他屏幕进行检查。

标签: flutter dart stream


【解决方案1】:

您必须使用StreamController 来检查流是否已经被收听,使用StreamController 的方便hasListener getter。

下面是要理解的最少示例代码:

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");
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-16
    • 2022-01-17
    • 2011-10-17
    • 2021-07-17
    相关资源
    最近更新 更多