android - RxJava retry when other observable emits error -
i wanna create chain of request should looks that.
i call apiservice.changepassword()
, can success 200 , 401 error. if success fine else have call apiservice.refreshtoken()
, if refreshed token should call again apiservice.changepassword()
. think using retrywhen
. should use?
[edit:]
i got solution:
apiservice.joboffers(...) .subscribeon(schedulers.io()) .flatmap(new func1<response<responsebody>, observable<feeddataprovider>>() { @override public observable<feeddataprovider> call(response<responsebody> response) { ... } }).retrywhen(new func1<observable<? extends throwable>, observable<?>>() { @override public observable<?> call(observable<? extends throwable> observable) { return observable.flatmap(new func1<throwable, observable<?>>() { @override public observable<?> call(throwable throwable) { if(throwable instanceof retrofitexception) { ///refresh token } } return observable.error(throwable); } }); } });
Comments
Post a Comment