Observable 由冷和热 Observable 组成

Observable composed of cold and hot observables

我很难找到合适的方法来组成一个 Observable,它将从给定的冷 Observable A 中发出所有项目,并在其完成后立即继续热 Observable B

这是我的具体用例:我有一个数据收集器,它实时将数据附加到仅附加数据库(事件流)。当一个流式传输所有事件流的请求到达时,它应该开始流式传输数据库中的所有内容,一旦数据库没有更多数据,它将开始流式传输任何收集器流……正如您所见,两者都可作为可观察对象使用。

我是响应式编程的新手,因此我的问题可能有点抽象。任何帮助表示赞赏。

这是此行为的图表:

B ----B---B---B----B--B---B---B---X------>
                   |  |   |   |   |
                   |  |   |   |   |
R --A---A--A----?--B--B---B---B---X------>
    |   |  |    |
    |   |  |    |
A --A---A--A----X------------------------>

这里 R 是我们的可观察结果,A 是冷的,B 是热的。 RB 结束。

我怀疑您需要的是 2 个队列,而不是 observable。

QueueA 具有优先级,只有在 QueueA 收到 quit/end 消息信号后才会处理 QueueB。

你觉得这个场景可能合适吗?

如果 B 很热,那么简单地 A.concat(B) 应该可以工作,因为只有当 A 完成时才会订阅 B。