流有条件地反应热观察?

时间:2015-01-21 12:02:07

标签: javascript rxjs

我正在尝试拥有一个组件,以异步(并有条件地)对鼠标事件流做出反应。这是一个简单的场景:

您将鼠标悬停在a {@time: 0}上,该组件会转到A {@time:4},但到那时,该用户已在b {@time:2}然后c {@time:4}上停留。因此,该组件需要将表单A切换为C

MouseEventStream:  a-b-c-------d-e-f-g--h--------|->
ComponentState:    *---A---*---C---*---F---*---H-|->

* is the idle state

我尝试过类似下面的内容,但是我需要过滤器来缓冲一些事件......

var subject = new Rx.Subject();
.filter(function() {

    return self.isIdle();
})
.map(function(item) {

    return item;
})
.subscribe(function (){
    // do something
});

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

虽然我不确定这是怎么做的,但我可能找到了bufferspausableBuffered的解决方案,操纵BehaviorSubject

http://jsbin.com/tedolerapo/7/edit?js,output