如何在收到第一个事件时订阅和取消订阅 EventStream?
How to subscribe and unsubscribe from EventStream on the first event received?
我正在尝试弄清楚 Bacon.js API 中是否有允许订阅 EventStream 的函数,以及当第一个事件触发,句柄被取消订阅。我知道的方法如下:
let stream = new Bacon.Bus();
stream.onValue(val => {
doSomething(val);
return Bacon.noMore;
});
但是有没有像stream.onValueOnce
这样的东西在执行后自动取消订阅处理程序?
我也知道 Bacon.once
创建了一个 returns 单个值然后结束流的 EventStream 但这不是我要找的。
更新
如Bless Yahu所说,take或者first方法都可以。更具体地说,您必须像这样从创建的事件流中调用它:
let stream = new Bacon.Bus();
stream.first().onValue(val => {
doSomething(val);
});
这是一个显示它的 fiddle:
stream.take(1) 怎么样? https://baconjs.github.io/api.html#observable-take
或stream.first()? https://baconjs.github.io/api.html#observable-first
我正在尝试弄清楚 Bacon.js API 中是否有允许订阅 EventStream 的函数,以及当第一个事件触发,句柄被取消订阅。我知道的方法如下:
let stream = new Bacon.Bus();
stream.onValue(val => {
doSomething(val);
return Bacon.noMore;
});
但是有没有像stream.onValueOnce
这样的东西在执行后自动取消订阅处理程序?
我也知道 Bacon.once
创建了一个 returns 单个值然后结束流的 EventStream 但这不是我要找的。
更新
如Bless Yahu所说,take或者first方法都可以。更具体地说,您必须像这样从创建的事件流中调用它:
let stream = new Bacon.Bus();
stream.first().onValue(val => {
doSomething(val);
});
这是一个显示它的 fiddle:
stream.take(1) 怎么样? https://baconjs.github.io/api.html#observable-take
或stream.first()? https://baconjs.github.io/api.html#observable-first