2013-11-26 3 views
11

Observable 작성 후 요소를 추가 할 때 어떻게 시나리오를 구현할 수 있습니까? Observer 패턴에서 나는 단지 이벤트를 발동 할 것입니다. 아이디어가 있습니까? 당신은 할 수 없습니다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' 
관련 문제