【发布时间】:2018-03-20 14:16:07
【问题描述】:
我想执行几个阻塞方法(网络调用、计算任务)。我想并行执行它们,并在它们全部完成时收到通知,或者如果它们中的任何一个失败(抛出异常)则收到错误消息。他们不会发出结果,所以Observable.zip() 不会帮助我。
到目前为止我有:
Completable a = computationTaskA();
Completable b = computationTaskB();
Completable c = computationTaskC();
Completable all = Completable.concat(Arrays.asList(a, b, c))
.subscribe(() -> {
// all succeed
}, e -> {
// any fails
});
但是Completable.concat() 文档说Returns a Completable which completes only when all sources complete, one after another.。我没有找到可以并行执行它们的解决方案。
【问题讨论】:
-
你看过
Completable的可用操作符和静态工厂方法吗? -
我查看了github.com/ReactiveX/RxJava/wiki/Combining-Observables 并无法弄清楚。你有什么特别的想法吗?