2013-11-26 17 views
11

Làm cách nào để triển khai kịch bản khi tôi muốn thêm các phần tử sau khi tạo Đài quan sát, nó có thể được thực hiện không? Trong mẫu Observer, tôi sẽ chỉ tổ chức sự kiện. Bạn có một số ý tưởng?Thêm các phần tử sau khi tạo rx Có thể quan sát

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 

Trả lời

11

Bạn không thể - không thể theo dõi bạn đã tạo. Những gì bạn cần là một Subject, bằng cách sử dụng mà bạn có thể phát ra các giá trị. Subject về cơ bản là cả ObservableObserver.

Ví dụ:

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' 
Các vấn đề liên quan