【问题标题】:How to emit 2 Observables and avoid returning anything如何发出 2 个 Observables 并避免返回任何东西
【发布时间】:2014-10-03 02:41:50
【问题描述】:

我正在尝试使用 .zip() 方法发出 2 个 Observable,但我想避免由于使用 Func2 而需要返回任何内容。

有类似的吗??

我找不到任何其他方法可以做到这一点......

谢谢!

编辑:

Observable<> obs1 = ...;
Observable<> obs2 = ...;

Observable.zip(obs1, obs2, new Func2<T1, T2, R>() {

    R call(T1 t1, T2 t2) {
        ..
    }
    ..
   return ...;
});

我想要一个像 zip 这样的函数,但它不需要你返回任何东西 - 例如 Action2 而不是 Func2。

【问题讨论】:

  • "emit 2 Observalbes" 是什么意思?结果 observable 中有 2 个项目或结果 observable 中有 2 个 Observable ?你能展示一个大理石图吗?
  • 请看我的“编辑”。
  • 我从未使用过 RxJava,但您是否尝试过将 Void 作为第三个类型参数传递并简单地返回 null
  • 我认为没有更好的方法,我认为只需返回 Observable.empty() 或像 Observable.just("OK") 这样的 ok 状态
  • Brice:我会试试你的解决方案!

标签: java java-8 rx-java vert.x


【解决方案1】:

这可以使用toCompletable() 解决,如下例所示:

public static void main(String[] args) {
    Observable.just(1).zipWith(Observable.just(2), (a, b)->a+b).toCompletable().subscribe(()->System.out.println("done"));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多