RxJava:如果源太慢,则插入其他发射

时间:2018-07-12 12:35:00

标签: rx-java

我有一个RxJava v1.x Observable(实际上是一个Subject),在正常情况下,它将每秒发出一次元素。有时可能会有中断,导致排放停止一会儿(没有发出错误或完成信号!),直到排放再次以正常速度恢复。

我正在寻找一种方法,可以将该源Observable转换为另一个源,以反映每个源的发射,但是如果源保持沉默的时间过长(例如,超过30秒),则“插入”一个特殊的“占位元素”,而无需取消订阅源(即它仍应反映后续的源排放)!

我将尝试说明这种情况:

source:
s[t=1], s[t=2], s[t=3], s[t=40], s[t=41], ...

result:
s[t=1], s[t=2], s[t=3], x[t=33], s[t=40], s[t=41], ...

在这里,x是在源保持沉默30秒后(即在时间t = 33时)发出的“插入”元素。

理想情况下,我想实现此目标而不必停止或重新启动源。

0 个答案:

没有答案