2014-06-23 165 views

回答

3

如果你只是串联起来,并使用4可观察的结果,你可以简单地直接使用的对象,一切都将正常工作(假设你在这里使用的Scala):

val obs1 = Observable.interval(1 second) 
val obs2 = obs1.map(_*2) 
obs2.subscribe(println(_)) 

另如果obs1是数据馈送,并且您需要几个单独的订阅,则这将不起作用,因为所有数据都将由第一次订阅使用。所以这个代码将做同样的:

val obs1 = Observable.interval(1 second) 
val obs2 = obs1.map(_*2) 
obs2.subscribe(println(_)) 
obs2.subscribe(println("I am never executed !")) 

在这种情况下,你将不得不将此转换(冷的)可观察到热点观察的,我。即一个Subject

val s = new Subject() 
s.onNext("I am a value") 
... 
s.subscribe(println("first print : "+_)) 
s.subscribe(println("second print : "+_)) 

这里所有用户都会收到数据。

Here is an example一个复杂的代码,你有一个观察对象的主题是特定关键字的Twitter供稿。这是一个主题让几个Observables订阅它,然后在不同的Observables中并行地完成不同的事情。

相关问题