java - RX2。如何对 x 秒后没有发出任何反应作出反应?
问题描述
尽管我的问题似乎很常见,但我还没有找到任何好的解决方案。当然,这种情况是可以解决的,但如果你明白我的意思,我想以更 RX 的方式解决它。
情况
我有一个Observable
发出一些事件的。我想要的是订阅下一个即将发生的事件,并做一些事情,如果1 秒内没有事件发出。因此,如果发出某些东西 - 调用方法doSomething()
。如果 1 秒内没有发出任何内容,请调用 method doSomething()
。
可能的解决方案
一种可能的解决方案是创建Completable.timer(1000)
、订阅两者,然后等待第一个发出/完成。Observable.combineLatest
除了我不必等待两者之外的东西,而只是第一个事件到达。但我也没有在 RX2 中找到这样的功能。
请指教
请为这两种情况提供建议的解决方案,如果可能的话,有没有办法为下一个发射的项目设置等待延迟,或者从几个可观察的项目中选择第一个发射?
谢谢!
解决方案
推荐阅读
- python - 如何从间接 URL 获取直接 URL?Python 网页抓取
- azure - 找不到类型或命名空间 EventProcessorClient
- angular - 共享项目时可以安全删除哪些 Angular 文件?
- javascript - 使用 nodeJS 从 Amazon S3 读取文件并使用 axios 将其发布到另一台服务器
- css - 我如何将 safari (css) 上的最后一行文本居中对齐?
- android - 在协调器布局中折叠布局后保留图像并设置最小高度
- java - 无法使用 ValidationMessages.properties 获取字段名称
- html - CSS 悬停时动画下划线,活动时保持
- ms-access - MS Access-2019,数据类型不匹配
- java - JUnit TestGroup - 没有启用任何测试组