rxjs - 在 ConcatMap 中使用延迟,Observable 只发出一次
问题描述
给定以下代码:
range(1, 30)
.pipe(
windowCount(10),
concatMap(x => x.pipe(delay(5000))),
)
.subscribe(console.log);
由于某种原因,只发出了第一个值(1..10),有人能指出上面的代码有什么问题吗?谢谢。
预期输出:1..10(延迟)11..20(延迟)等等....
解决方案
发生这种情况是因为windowCount
将在创建新窗口之前完成先前的内部“窗口”。您将每个“窗口”延迟 5 秒,但是当concatMap
想要订阅下一个“窗口”时,它已经完成并且永远不会发出任何东西。
请注意,这windowCount
将尽快发出所有窗口,无论是否concatMap
有机会订阅它们。
推荐阅读
- ubuntu - ubuntu环境下需要环境变量的问题
- javascript - 只有一个特定的变量适用于我的 ajax 代码
- php - PDO bindParam 在 sql 查询的 IN 绑定中不起作用
- java - 填充 ListView 时出现空指针异常
- python - 如何解决安装 python 库的错误?
- jestjs - 使用 Jest 了解模拟的实用性
- php - 如何在源页面上获取 mp4 url?
- docker - 将 JHipster 6.0.1 推送到 Gitlab 存储库
- reactjs - 尽管函数更改了 var,但 DOM 未更新
- kubernetes - 为 docker 配置后,minikube 不再运行