2014-06-23 166 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中並行地完成不同的事情。

相關問題