Switchmap()函数不能处理多个事件

时间:2017-11-30 22:29:28

标签: rxjs

我尝试过合并多个事件的方法,但我无法让它工作 - 基本上这条线对于单个事件来说效果很好。

Observable.fromEvent(document.body, 'mousemove')
.switchMap(() =>  Observable.timer(0, 1000))

我想对mousemovekeyup这样的多个事件做同样的事情,所以我这样做了:

let mergedEvents = Observable.fromEvent(document.body, 'mousemove')
                  .merge(Observable.fromEvent(document.body, 'keyup'))
mergedEvents.subscribe(event => event.switchMap(() =>  Observable.timer(0, 1000))

哪个无法正常工作 - 如何让它与多个事件一起使用?

1 个答案:

答案 0 :(得分:0)

您不能使用mergedEvens链接switchMap:

let mergedEvents = Observable
  .fromEvent(document.body, 'mousemove')
  .merge(Observable.fromEvent(document.body, 'keyup'))

mergedEvents
  .switchMap(() => Observable.timer(0, 1000))
  .(...)

此处的示例:https://jsbin.com/xiyuvuwogo/1/edit?js,console,output(这里我使用点击进入文档,检查它只需点击进入输出)