我正在进行改造api,它会在某些数据上返回可观察的数据。
Api使用auth令牌访问服务器。当auth令牌过期时,我有关于它的错误消息(Observer在订阅者中调用onError)。
public Observable<MyObject> getObjectObservable() {
return mApi.getObject();
}
我也可以使用observable刷新令牌:
private Observable<AuthResult> restoreToken() {
return mApi.restoreToken(new RestoreTokenBody(getRestoreToken()));
}
如何在getObjectObservable函数中实现后续步骤:
答案 0 :(得分:1)
尝试使用operator onErrorResumeNext
这样的事情:
public Observable<MyObject> getObjectObservable() {
return mApi.getObject()
.onErrorResumeNext(restoreToken().flatMap(authResult -> mApi.getObject()));
}