2017-07-18 43 views
0

我試圖弄清楚,如果在Bacon.js API中有一個函數允許訂閱一個EventStream,並且當第一個事件觸發時,該句柄被取消訂閱。要做到這一點,我知道的方法如下:如何在接收到的第一個事件中訂閱和取消訂閱EventStream?

let stream = new Bacon.Bus(); 

stream.onValue(val => { 
    doSomething(val); 
    return Bacon.noMore; 
}); 

但有類似stream.onValueOnce執行完成後自動取消處理程序?

我也知道有Bacon.once創建一個EventStream返回一個值,然後結束流,但這不是我正在尋找。

更新

作爲保佑雅虎sais,採取或第一種方法可以使用。更具體地講,你必須從這樣的創建eventStream稱之爲:

let stream = new Bacon.Bus(); 

stream.first().onValue(val => { 
    doSomething(val); 
}); 

這裏是一個小提琴,顯示它:

https://fiddle.jshell.net/3kjtwcwy/

回答