Как создать более одного элемента при возврате ошибки в RxJava2? - PullRequest
0 голосов
/ 23 апреля 2019

Я хочу обработать исключение, выпустив 2 элемента. Я хотел бы иметь что-то вроде

handleHttpResponse(): Observable()
LoadingOn, LoadingOff, OnError(error): Item

aHttpObservable()
    .flatMap{ handleHttpResponse() }
    .startWith{ Observable.just(LoadingOn) }
    .concatWith{ Observable.just(LoadingOff) }
    .onErrorReturn{ error -> Observable.just(LoadingOff, OnError(error)) }

Или, так как onComplete или onError Я должен закрыть диалоговое окно загрузки, могу ли я что-то вроде

aHttpObservable()
    .flatMap{ handleHttpResponse() }
    .startWith{ Observable.just(LoadingOn) }
    .onTerminate{ Observable.just(LoadingOff) }
    .onErrorReturn{ error -> OnError(error) }

Как я могу это сделать? Спасибо.

1 Ответ

1 голос
/ 23 апреля 2019

Использование onErrorResumeNext()

Observable.error(new RuntimeException("test"))
        .onErrorResumeNext(error -> {
            return Observable.just("a_message", error.toString());
        })
        .subscribe(System.out::println);
...