vishnus
vishnus

Reputation: 728

RxJava - Wait for Observable to complete

I have two Observable sequences namely Observable1 and Observable2. They both are executed on separated schedulers.

Observable1 fetches data from the database whereas Observable2 fetches the same data from the server.

The result of these two Observablesequences is sent to the Observer using a subject.

Now if there is no internet connectivity, then Observable2 executes onError() before Observable1 could post its onNext() event.

How to wait for Observable1 to emit its onNext() event before Observable2 starts emitting?

Here's some code:

Observable1 = dataRepo.getItems().doOnNext({ serializedSubject.onNext(items)}).subscribeOn(Schedulers.io());

Observable2 = cloudRepo.getItems().doOnNext({ dataRepo.addAll(items) dataRepo.getItems().subscribe(serializedSubject)}). subscribeOn(Schedulers.io());

Observable.mergeDelayError(Observable1, Observable2) .subscribeOn(Schedulers.io()).subscribe(new Subscriber());

Upvotes: 0

Views: 1844

Answers (1)

Tassos Bassoukos
Tassos Bassoukos

Reputation: 16142

If you just don't care about error codes, add .onErrorResumeNext(Observable.empty()) at the end of each Observable; you'll just need the normal merge operator.

Upvotes: 2

Related Questions