RxJava允许多个onError调用

时间:2016-04-07 14:45:13

标签: java android rx-java

我试图在接下来和错误调用时允许无限的两个流。

下面的代码使用retry()方法,我假设该方法允许我查看对onNext的所有3次调用,但是在错误之后没有其他任何调用。

public class TesterClass {
​
    public static void main(final String[] args) {
        final PublishSubject<Void> publishSubject = PublishSubject.create();
​
        publishSubject
                .retry()
                .subscribe(
                        aVoid -> System.out.println("onNext"),
                        Throwable::printStackTrace,
                        () -> System.out.println("onComplete")
                );
​
        publishSubject.onNext(null);
        publishSubject.onNext(null);
        publishSubject.onError(new Exception("onError"));
        publishSubject.onNext(null);
    }
}

我理想的用例允许我订阅并对所有错误以及主题/可观察的所有下一个调用采取措施。

我还尝试使用here所示的自定义Operator来实施解决方案,但我也没有运气。

是否有可能实现我要做的事情,或者设计RxJava的onError会破坏链条完全阻止这个想法。

1 个答案:

答案 0 :(得分:7)

正如在这个帖子(Rxjava discussion)中提到的那样,这是无法做到的。

如果错误不应该终止流,则通过OnNext将错误包装到消息中。