RxJava2:zip'ed observables中的多个错误抛出异常

时间:2016-11-22 15:35:33

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

我通过压缩它们来并行执行多个HTTP调用。现在0..n他们显然会失败。事情是,例如, 2个呼叫几乎在确切时间内失败,错误1在doOnErroronErrorReturnItem中处理,但错误2滑过并导致异常。我认为如果错误2恰好进入,而错误1仍未在这两个onError运算符中完全处理,则会发生这种情况。

可以使用以下简化代码进行复制:

buttonClick.flatMapSingle(action -> Single.zip(
                    Single.error(new Throwable("error 1")).delay(500, TimeUnit.MILLISECONDS),
                    Single.error(new Throwable("error 2")).delay(500, TimeUnit.MILLISECONDS),
                    (integer, integer2) -> true
            )
                    .doOnError(t -> Timber.d(t.getMessage()))
                    .onErrorReturnItem(true))
                    .subscribe();

所以每隔一段时间就会抛出一次:

D/Main: error 1
W/System.err: java.lang.Throwable: error 2

Single.zip是否只允许发出一个错误? 有更好的方法吗?

0 个答案:

没有答案