【问题标题】:How to update an observable manually?如何手动更新 observable?
【发布时间】:2015-11-11 14:40:23
【问题描述】:

我是 reactivex 和 rxscala 的新手,可以像这样创建一个 Observable

val observable = Observable[String] { subscriber => 
    subscriber.onNext("something")
}

我可以将新字符串放入Observable.apply 内的subscriber

是否可以在外面更新observable?我的意思是,有没有像putNext这样的方法:

observable.putNext("another string")

让我把新东西放到现有的 observable 上?

【问题讨论】:

    标签: scala reactive-programming observable subscriber rx-scala


    【解决方案1】:

    如果要手动控制 Observable,则需要使用 Subject。

    根据ReactiveX documentation

    Subject 是一种桥接器或代理,在 ReactiveX 的某些实现中可用,它既充当观察者又充当 Observable。因为它是一个观察者,所以它可以订阅一个或多个 Observable,并且因为它是一个 Observable,它可以通过重新发射它观察到的项目来传递它们,它也可以发射新的项目。

    您可以订阅一个主题,但您也可以将新元素传递给它,实际上是手动控制它,这正是您所要求的。

    例子:

    val subject = PublishSubject[String]()
    subject.onNext("one")
    subject.onNext("two")
    subject.onNext("three")
    subject.onCompleted()
    

    【讨论】:

      猜你喜欢
      • 2016-01-24
      • 1970-01-01
      • 1970-01-01
      • 2023-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      相关资源
      最近更新 更多