我有一个滑块。我想根据百分比改变颜色。除此之外,如果用户不移动鼠标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)
)
谢谢。
答案 0 :(得分:3)
从事件源开始,然后将序列切换到在指定时间后发出的计时器。当事件源发出时,它将创建另一个计时器,延迟它之后发生的任何事情。
fromEvent(container,"mousemove")
.switchMap(() => timer(IDLE_TIME))
.do(() => { /* show tooltip */ })
.subscribe()