我想执行几种阻塞方法(网络调用、计算任务)。我想处决他们
并行
并在全部完成时收到通知,或在其中任何一个失败时收到错误(引发异常)。它们不会发出这样的结果
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.
。我没有找到一个可以并行执行它们的解决方案。