Rx java 多个可观测对象链接在一起以完成

Rx java 多个可观测对象链接在一起以完成,rx-java,Rx Java,我需要使用第一个可观察结果来创建第二个可观察结果并订阅其结果,有时它需要3到4层可观察结果。完成这项工作的最佳方法是什么?如果您只是简单地将它们链接起来并使用第四个可观察对象,那么您可以直接使用这些对象,一切都会正常工作(假设您在这里使用Scala): 另一方面,如果obs1是一个数据馈送,并且您需要几个单独的订阅,这将不起作用,因为所有数据都将由第一个订阅使用。因此,此代码将执行完全相同的操作: val obs1 = Observable.interval(1 second) val obs2

我需要使用第一个可观察结果来创建第二个可观察结果并订阅其结果,有时它需要3到4层可观察结果。完成这项工作的最佳方法是什么?

如果您只是简单地将它们链接起来并使用第四个可观察对象,那么您可以直接使用这些对象,一切都会正常工作(假设您在这里使用Scala):

另一方面,如果obs1是一个数据馈送,并且您需要几个单独的订阅,这将不起作用,因为所有数据都将由第一个订阅使用。因此,此代码将执行完全相同的操作:

val obs1 = Observable.interval(1 second)
val obs2 = obs1.map(_*2)
obs2.subscribe(println(_))
obs2.subscribe(println("I am never executed !"))
在这种情况下,你必须将这个(冷的)可观测的转换成热的可观测的,即。Ea

在这里,所有订户都将接收数据

一个复杂的代码,其中您有一个观察对象的主题,它是特定关键字的Twitter提要。这是一个让多个观察对象订阅它的主题,然后在不同的观察对象中并行地做完全不同的事情

val obs1 = Observable.interval(1 second)
val obs2 = obs1.map(_*2)
obs2.subscribe(println(_))
obs2.subscribe(println("I am never executed !"))
val s = new Subject()
s.onNext("I am a value")
...
s.subscribe(println("first print : "+_))
s.subscribe(println("second print : "+_))