angular - 在定时器 rxjs 结束时调用函数
问题描述
嗨,我想在 rxjs 中完成的计时器结束时调用该函数。
this.timer$ = timer(1000, 1000).pipe(
scan(acc => acc = acc - 1000, milliseconds),
takeWhile(x => x >= 0),
tap(() => {
console.log('function finished')
})
)
上面的代码可以工作,但是我如何定义一个在计时器到期后应该调用的函数。
我尝试了tap
方法,但它不起作用
解决方案
使用finalize
,takeWile
将在条件匹配并触发时完成 observablefinalize
this.timer$ = timer(1000, 1000).pipe(
scan(acc => acc = acc - 1000, milliseconds),
takeWhile(x => x >= 0),
finalize(() => {
console.log('function finished')
})
)
推荐阅读
- plotly-dash - 如何在不使用字典的情况下更新数据表行
- benchmarking - 用于测量速度和内存消耗的与语言无关的基准测试工具
- google-sheets - 从 Google 电子表格获取动态范围
- haskell - 如何从类型中获取价值
- mongodb - MongoRepository @Query 无法将字符串解析为日期
- php - 如何隐藏文件 url 以提高安全性
- html - HTML 图像无法显示树的图像
- django - “无法打开文件'manage.py':[Errno 2]没有这样的文件或目录”当我尝试运行服务器本地主机时出现此错误
- jquery - 使用 CSS 和 Jquery 淡入淡出图像/屏幕保护程序
- c++ - 删除指针失败