DeePanShu
DeePanShu

Reputation: 1326

How to set TimeOut for complete Observer in RXjava - Android?

I have many request merged in Observable, and I need a Timeout Not for every emission but for complete observable in RXjava. Is it Possible??

            Observable
            .merge(listOfObservables).subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new DisposableObserver<Response>() {

                @Override
                public void onNext(@io.reactivex.annotations.NonNull Response response) {
                    
                }

                @Override
                public void onError(@io.reactivex.annotations.NonNull Throwable e) {
                  
                }

                @Override
                public void onComplete() {
                  
                }
            });

Upvotes: 0

Views: 633

Answers (1)

akarnokd
akarnokd

Reputation: 69997

You could use takeUntil with a delayed error:

Observable
.merge(listOfObservables)
.subscribeOn(Schedulers.io())
.takeUntil(Observable.error(new TimeoutException()).delay(5, TimeUnit.MINUTES, true))
.observeOn(AndroidSchedulers.mainThread())

Upvotes: 1

Related Questions