dart - 如何将多个监听器分配给单个StreamSubscription?

标签 dart

这是有效的声明

StreamSubscription currentSubscription = querySelector(…).onClick.listen(….).

这里有一个分配给一个StreamSubscription的侦听器。

但是,当您执行queryselectorAll(..)。onClick.listen(..)时。您正在将侦听器添加到所有查询选择的元素中。

我注意到以下陈述也是有效的。
StreamSubscription currentSubscription = queryselectorAll(..).onClick.listen(..) 

在这里,我使用onClick侦听器将1 StreamSubscription分配给元素列表。这是如何运作的?

最佳答案

您不能将多个侦听器分配给StreamSubscription

您的第二条语句不起作用,因为querySelectorAll()返回一个集合,并且您无法收听集合。

也许这就是您想要的:

Iterable<StreamSubscription> subscriptions = 
    queryselectorAll(..).map((e) => e.onClick.listen(..));

然后再
if(subscriptions != null) {
  subscriptions.forEach((s) => s.cancel());
}

关于dart - 如何将多个监听器分配给单个StreamSubscription?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31551007/

相关文章:

dart - const 构造函数实际上是如何工作的?

user-interface - flutter :将常规小部件放在CustomPaint Canvas 顶部

flutter - 如何在Flutter中制作Alert Dialog摇动动画

Flutter:如何限制用户在给定时间段内点击按钮的次数?

dart - 如何在 Flutter 中提升图像的高度?

dart - 如果原来的 JS 有很多功能,如何 dart 来启动它们?

flutter - 如何在“flutter ”中较小行内的中心对齐大图标?

flutter - 常量变量必须用常量值初始化

Dart - 试图理解 'factory' 构造函数的值

flutter - 关闭应用程序时保持 VideoPlayerController 播放音频