3
我需要使用第一個可觀察結果來創建第二個可觀察物並訂閱它的結果,有時它需要3到4層的可觀察物。什麼是完成這個最好的方法?幾個可觀察物鏈連在一起完成
我需要使用第一個可觀察結果來創建第二個可觀察物並訂閱它的結果,有時它需要3到4層的可觀察物。什麼是完成這個最好的方法?幾個可觀察物鏈連在一起完成
如果你只是串聯起來,並使用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中並行地完成不同的事情。