RXJava error handling of multiple Observables

Ido Barash

I have a logic that I have to run after fetching some data from other services. How do I handle failure of one or all of them?

I wish to log an error and not throw exceptions

// Step 1
Observable<Provider> providerObservable =
        providerService
                .getProvider(data)
                .toObservable()
                .onErrorResumeNext(e -> Observable.error(e.getCause()));

// Step 2
Single<Profile> profileObservable =
        profileService
                .getProfile(data)
                .onErrorResumeNext(e -> Single.error(e.getCause()));

Observable<ExtendedProfile> extendedProfileObservable =
        profileObservable
                .flatMap(this::getExtendedProfile)
                .toObservable()
                .onErrorResumeNext(e -> Observable.error(e.getCause()));

// Combine
Observable.combineLatest(providerObservable, extendedProfileObservable, this::handleProviderAndProfile)
        .doOnError(throwable -> logError(throwable))
        .onErrorResumeNext(throwable -> Observable.empty())
        .subscribe();

This gets me stuck. Nothing is written to log.

Ankit Kumar
Observable.combineLatest(
        providerObservable,
        extendedProfileObservable,
        handleProviderAndProfile,
        (providerObservable, extendedProfileObservable, handleProviderAndProfile) -> operationFunction(providerObservable, extendedProfileObservable, handleProviderAndProfile)
)
        .doOnError(throwable -> logError(throwable))
        .onErrorResumeNext(throwable -> Observable.empty())
        .subscribe();

You can try something like above. providerObservable, extendedProfileObservable and handleProviderAndProfile are input for combineLatest and (providerObservable, extendedProfileObservable, handleProviderAndProfile) -> operationFunction(providerObservable, extendedProfileObservable, handleProviderAndProfile) is providing result to lambda. This should be the operation performed on all three inputs.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

RxJava chaining observables and error handling(custom exception propagation)

From Dev

Combining multiple observables in RxJava

From Dev

RxJava subjects and error handling

From Dev

RxJava error handling

From Dev

RxJava resilent way to combine multiple observables

From Dev

How to combine multiple async RxJava Observables?

From Dev

RxJava resilent way to combine multiple observables

From Dev

Rxjava: How to combine multiple observables without all observables completing?

From Dev

How to perform error handling from multiple Observables in Angular 2 / Ionic 3?

From Java

Handling Error RXJava Android with Kotlin

From Dev

Android rxJava Error handling with retrofit

From Dev

Retrofit 2 + Rxjava handling error

From Dev

RxJava combine multiple observables do sth after all done

From Dev

rxjava: emitting one result of all observables instead of multiple

From Dev

RxJava Zip Operator Error Handling with Iterator

From Dev

Retrofit 2 and RxJava error handling operators

From Dev

RxJava flow: conditional operators and error handling

From Dev

RxJava Zip Operator Error Handling with Iterator

From Dev

Error handling on Zip operator RxJava android

From Dev

RxJava: chaining observables

From Dev

RxJava zip with vararg observables

From Dev

RxJava Chained Observables and NetworkMainThreadException

From Dev

Rxjava Observables dependency

From Dev

RxJava Fetching Observables In Parallel

From Dev

Transforming Observables in RxJava and RxScala

From Dev

RxJava: Dynamic set of observables

From Dev

Android RxJava and chaining of observables

From Dev

PostBuildEvent Multiple script error handling

From Dev

VBA - Error handling with multiple forms

Related Related

HotTag

Archive