我正在尝试在下一次和错误调用时允许无限流。
下面的代码使用了 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);
}
}
我的理想用例将允许我订阅所有错误以及来自主题/可观察对象的所有下一次调用并采取行动。
我还尝试使用自定义 Operator
实现解决方案,如图所示 here但我也没有运气。
是否有可能实现我打算做的事情,或者 RxJava 的 onError 断链设计是否完全阻止了这个想法。
最佳答案
如本帖 (Rxjava discussion) 中所述,这是无法完成的。
如果错误不应终止流,则通过 OnNext 将错误包装到消息中。
关于java - RxJava 允许多次 onError 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36479654/