2015-05-14 13 views

Antwort

8

können Sie allgemeine verwenden Wrapper stream

var leftKeys = Kefir.stream(function(emitter){ 
    Mousetrap.bind('left', function(e) { 
     emitter.emit(e); 
     console.log(e); 
    }); 
    return function(){ 
     // unbind 
    }; 
}); 

http://jsfiddle.net/be9200kh/1/

+1

Das richtige Weg, es zu tun ist. Auch "emitter.emit" kann direkt als Callback übergeben werden - 'Mousetrap.bind ('left', emitter.emit)', es sei denn, Sie benötigen dieses Protokoll natürlich. –

2

Normalerweise können Sie Kefir.fromEvents verwenden, aber in Ihrem Fall, wo Mousetrap.js nicht on|off Methoden nicht bindet verwenden, können Sie stattdessen einfach Verwenden Sie Kefir.pool (Kefir.emitter wurde veraltet) und Kefir in den Mousetrap-Callbacks auslösen. Ich änderte den Code mit Kefir.pool in den Mousetrap Rückrufe zu demonstrieren: http://jsfiddle.net/be9200kh/

Grundsätzlich Sie tun

var pool = Kefir.pool(); 
pool.plug(Kefir.constant(1)); 
pool.map(...).filter(etc) 

Viel Spaß!

Verwandte Themen