如何在收到的第一个事件中订阅和取消订阅EventStream?

时间:2017-07-18 14:34:25

标签: bacon.js

我想知道如果 Bacon.js API中有一个允许订阅EventStream的函数,并且当第一个事件触发时,该句柄被取消订阅。我知道的方法如下:

let stream = new Bacon.Bus();

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

但有没有类似stream.onValueOnce的内容在执行后自动取消订阅处理程序?

我也知道有Bacon.once创建一个EventStream,它返回一个值,然后结束流,但这不是我要找的。

更新

作为Bless Yahu sais,可以使用take或first方法。更具体地说,您必须从创建的eventStream中调用它:

let stream = new Bacon.Bus();

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

这是一个表明它的小提琴:

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

1 个答案:

答案 0 :(得分:1)