Я пытаюсь разрешить бесконечный поток как на следующих, так и на ошибках.RxJava допускает множественные вызовы onError
В приведенном ниже коде используется метод retry()
, который, как я предполагал, позволит мне увидеть все 3 вызова onNext
, однако после ошибки ничего не вызывается.
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's onError, нарушающий цепочку, полностью блокирует эту идею.