2013-11-26 9 views
11

Observableを作成した後に要素を追加するときに、シナリオを実装するにはどうしたらいいですか?オブザーバーのパターンでは、私はちょうどイベントなどを発射するでしょう。アイデアはありますか?rxの作成後に要素を追加Observable

import rx.lang.scala._ 

val target = Observable(1,2,3,4) 

val subscription1 = target subscribe(println(_)) 
val subscription2 = target subscribe(println(_)) 


def addToObservable(toAdd: Int, target: Observable[Int]): Observable[Int] = { 
    target/*.addElementAndNotifyObservers(toAdd)*/ 
} 

addToObservable(4, target) //should print 4 on all subscriptions 
addToObservable(6, target) //should print 6 on all subscriptions 

答えて

11

作成したオブザーバブルにはできません。必要なものはSubjectで、これを使用して値を出力できます。 Subjectは、基本的にObservableObserverの両方です。例えば

import rx.lang.scala._ 
import rx.lang.scala.subjects._ 

val subject = ReplaySubject[Int]()    
val initial = Observable(1,2,3,4)  
val target = initial ++ subject // concat the observables 

val subscription1 = target subscribe(println(_)) 
val subscription2 = target subscribe(println(_)) 

subject.onNext(4) // emit '4' 
subject.onNext(6) // emit '6' 
関連する問題