2013-12-23 63 views
0

我想創建一個流應包含以下代碼,如回調相同的元素創建一個飛鏢流:如何從一個JavaScript聽衆

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

我讀的教程/文章而且我不確定是否有可能在第一位消費者來臨時創建Stream元素。在上面的代碼中,這將意味着在Dart流被監聽時註冊JavaScript偵聽器。

下面的代碼不能工作,由於引用到updateStreamController正在初始化之前:

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

不幸的是,onListen屬性僅通過構造設定。

在此先感謝您的幫助

回答

1

你可以簡單地聲明變量之前初始化它:

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

就這樣? ;-) –