首页 > 解决方案 > RX2。如何对 x 秒后没有发出任何反应作出反应?

问题描述

尽管我的问题似乎很常见,但我还没有找到任何好的解决方案。当然,这种情况是可以解决的,但如果你明白我的意思,我想以更 RX 的方式解决它。

情况

我有一个Observable发出一些事件的。我想要的是订阅下一个即将发生的事件,并做一些事情,如果1 秒内没有事件发出。因此,如果发出某些东西 - 调用方法doSomething()。如果 1 秒内没有发出任何内容,请调用 method doSomething()

可能的解决方案

一种可能的解决方案是创建Completable.timer(1000)、订阅两者,然后等待第一个发出/完成。Observable.combineLatest除了我不必等待两者之外的东西,而只是第一个事件到达。但我也没有在 RX2 中找到这样的功能。

请指教

请为这两种情况提供建议的解决方案,如果可能的话,有没有办法为下一个发射的项目设置等待延迟,或者从几个可观察的项目中选择第一个发射?

谢谢!

标签: javarx-java2

解决方案


推荐阅读