javascript - 为什么这个控制台记录 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)
);
解决方案
在按钮单击时,您可以通过 将按钮事件切换到计时器 Observable switchMap
。结果,您在订阅中获得了计时器事件。在您的示例中,计时器事件的编号为 0,因为这是计时器的工作方式。
看一下timer
声明,它从 0 开始发出数字,但在您的情况下timer
只会发出一个数字并停止,您可以使用计时器的第二个参数来控制它。
推荐阅读
- firebase - 在导航状态 React Navigation 5 中发现了不可序列化的值
- laravel - Laravel 7:不要更新资源
- c++ - 如何在地图中查找字符
- python - 如何在 Linux 上运行 pyRAPL
- google-apps-script - 通过提供 URL 或密钥创建单个 Marco/Google 脚本并运行到不同的电子表格
- r - 如何创建一个使用其自身值的先前(滞后)实例的变量?
- python - 使用 scikit-multiflow 进行数据流聚类
- javascript - 如何通过 ID 最有效地聚合对象数组?
- ubuntu - RPi 4B Ubuntu 上的 LightGBM 无法加载模型
- python-3.x - Python Opencv 从图像中获取 rgb 时告诉颜色名称