【问题标题】:How to pass all events from one subject to another subject in RxJava?如何将所有事件从一个主题传递到 RxJava 中的另一个主题?
【发布时间】:2018-11-18 01:10:24
【问题描述】:

我想将所有项目或错误从 subject1 传递到 subject2。我的想法是这样的:

val subject1 = BehaviorSubject.create<Int>()
val subject2 = BehaviorSubject.create<Int>()

subject1.subscribe(
    { subject2.onNext(it) },
    { subject2.onError(it) },
    { subject2.onComplete() },
    { subject2.onSubscribe(it)}
)

有什么方法可以简化这种转换吗?谢谢。

【问题讨论】:

    标签: android kotlin rx-java rx-java2 behaviorsubject


    【解决方案1】:

    Subject 实现了Observer,因此您可以使用subject1.subscribe(subject2) 来获取onNextonErroronComplete 事件。如果您还需要转发onSubscribe,您可以添加doOnSubscribe() 呼叫:

    subject1
      .doOnSubscribe { subject2.onSubscribe(it) }
      .subscribe(subject2)
    

    【讨论】:

    • 你不需要在这里明确地doOnSubscribe,订阅将并且必须为你调用一次onSubscribe
    猜你喜欢
    • 2020-05-09
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多