【问题标题】:Add elements after creation of rx Observable创建 rx Observable 后添加元素
【发布时间】:2013-12-12 08:55:35
【问题描述】:

当我想在创建 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

【问题讨论】:

    标签: scala observer-pattern observable rx-java


    【解决方案1】:

    你不能 - 不是你创建的 observable。您需要的是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'   
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-08
      • 2015-09-21
      • 1970-01-01
      • 2015-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      相关资源
      最近更新 更多