首页 > 解决方案 > 为什么这个控制台记录 0?

问题描述

谁能帮我这个?我不明白为什么这个代码控制台记录 0。谢谢

const button = document.querySelector('button');

const observable = Rx.Observable.fromEvent(button, 'click');
observable
  .switchMap(event => Rx.Observable.timer(1000))
  .subscribe(
      (data) => console.log(data)
    );

标签: javascriptrxjsobservable

解决方案


在按钮单击时,您可以通过 将按钮事件切换到计时器 Observable switchMap。结果,您在订阅中获得了计时器事件。在您的示例中,计时器事件的编号为 0,因为这是计时器的工作方式。

看一下timer声明,它从 0 开始发出数字,但在您的情况下timer只会发出一个数字并停止,您可以使用计时器的第二个参数来控制它。


推荐阅读