0

我想创建一个 Stream ,它应该包含与以下代码中的回调相同的元素:

chromeTabs['onUpdated'].callMethod('addListener', 
    [(tabId, changeInfo, tab) => print("tabId = $tabId")]);

我阅读了 Chris Buckett 的教程/文章,但不确定是否可以在第一个 Consumer 出现时创建 Stream 元素。在上面的代码中,这意味着当 Dart Stream 被监听时注册 javascript 监听器。

由于在初始化之前引用了updateStreamController,以下代码无法工作:

var updateStreamController = new StreamController<int>(onListen: () =>
    chromeTabs['onUpdated'].callMethod('addListener', [(tabId, changeInfo, tab) => 
        updateStreamController.add(tabId)]);`

不幸的是,onListen属性只能通过构造函数设置。

在此先感谢您的帮助

4

1 回答 1

1

您可以在初始化之前简单地声明变量:

var updateStreamController;
updateStreamController = new StreamController<int>(onListen: () => 
    chromeTabs['onUpdated'].callMethod('addListener', 
        [(tabId, changeInfo, tab) => updateStreamController.add(tabId)]));
于 2013-12-23T07:42:03.340 回答