RxJs5 在没有移动时发射

RxJs5 emit on absence of movement

我有一个滑块。我想根据百分比改变颜色。除此之外,如果用户不移动鼠标 N 秒,我想显示工具提示。 我可以考虑可能的解决方案,但这似乎不是正确的方法,有没有更好的方法来完成这个任务?

Rx.Observable.fromEvent(container,"mousemove")
.debounceTime(30)
.switchMap(
   () => Rx.Observable.race(
       Rx.Observable.fromEvent(container,"mousemove").map(
           (v) => "Continue changing color"
       ),
       Rx.Observable.interval(2000).map(
           (v) => "Show tooltip!"
       )
   )
)
.subscribe(
  v => console.log(v)
) 

谢谢。

从事件源开始,然后将序列切换到在指定时间后发出的计时器。当事件源发出时,它会创建另一个计时器,延迟它之后发生的任何事情。

fromEvent(container,"mousemove")
  .switchMap(() => timer(IDLE_TIME))
  .do(() => { /* show tooltip */ })
  .subscribe()