Javascript Kefir.js-如何从回调函数流式传输事件?
该库允许您将回调函数绑定到键,如下所示:Javascript Kefir.js-如何从回调函数流式传输事件?,javascript,frp,Javascript,Frp,该库允许您将回调函数绑定到键,如下所示: Mousetrap.bind('space',function',keydown') 在不使用的情况下,将流附加到此文件的最佳方法是什么?我应该使用发射器还是池 我正试图将箭头键连接到这个小提琴中:通常,您可以使用Kefir.fromEvents,但在您的情况下,如果Mousetrap.js不使用on | off方法绑定,您可以只使用Kefir.pool(Kefir.emitter已被弃用)并在Mousetrap回调中触发Kefir。我修改了您的代码,以
Mousetrap.bind('space',function',keydown')代码>
在不使用的情况下,将流附加到此文件的最佳方法是什么?我应该使用发射器
还是池
我正试图将箭头键连接到这个小提琴中:通常,您可以使用Kefir.fromEvents
,但在您的情况下,如果Mousetrap.js不使用on | off
方法绑定,您可以只使用Kefir.pool
(Kefir.emitter
已被弃用)并在Mousetrap回调中触发Kefir。我修改了您的代码,以演示如何在捕鼠器回调中使用Kefir.pool
:
基本上是这样的
var pool = Kefir.pool();
pool.plug(Kefir.constant(1));
pool.map(...).filter(etc)
玩得开心 您可以使用通用包装器流
var leftKeys = Kefir.stream(function(emitter){
Mousetrap.bind('left', function(e) {
emitter.emit(e);
console.log(e);
});
return function(){
// unbind
};
});
这是正确的方法。另外,emitter.emit
可以作为回调直接传递-Mousetrap.bind('left',emitter.emit)
,当然,除非您需要该日志。