Single.zip中的源之一发生故障时,如何返回Single.error()?

Nom*_*sta 4 java android rx-java rx-java2

我有两个单身人士,我将其合并为一对。

假设对于这些来源,我们有两种方法:

private Single<String> single1() {} 
private Single<String> single2() {}
Run Code Online (Sandbox Code Playgroud)

现在我将它们合并为 Single<Pair<String, String>

private Single<Pair<String, String> combineSingles() {
    Single.zip(single1(), single2(), BiFunction<String, String, Pair<String, String>>) (t1, t2) -> new Pair(t1, t2))
}
Run Code Online (Sandbox Code Playgroud)

当其中一种方法(single1或single2)返回Single.error()时,我得到的UndeliverableException原因错误未在zip运算符中处理。我想Single.error()combineSingles()方法中返回,如何实现呢?

Max*_*nna 6

尝试这个

private Single<Pair<String, String> combineSingles() {
    try {
        Single.zip(single1(), single2(), BiFunction<String, String, Pair<String, String>>) (t1, t2) -> new Pair(t1, t2))
    } catch (Exception e) {
        Single.error()
    }
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我首先建议尝试catch方法:)