2013-11-26 6 views
11

जब मैं पर्यवेक्षण के निर्माण के बाद तत्व जोड़ना चाहता हूं तो मैं परिदृश्य को कैसे कार्यान्वित कर सकता हूं, क्या यह बिल्कुल किया जा सकता है? पर्यवेक्षक पैटर्न में मैं सिर्फ घटना या आग लगाना होगा। क्या आपके पास कुछ विचार हैं?आरएक्स के निर्माण के बाद तत्व जोड़ें 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 मूल रूप से Observable और Observer दोनों है।

उदाहरण के लिए:

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' 
संबंधित मुद्दे