使用 rxandroid 调用改造 api 时刷新身份验证令牌

Refreshing auth token when call retrofit api with rxandroid

我正在进行改造 api,return 在某些数据上可以观察到。

Api 使用授权令牌访问服务器。当 auth 令牌过期时,我收到有关它的错误消息(Observer 在订阅者中调用 onError)。

public Observable<MyObject> getObjectObservable() {
    return mApi.getObject();
}

我也可以用 observable 刷新令牌:

private Observable<AuthResult> restoreToken() {
    return mApi.restoreToken(new RestoreTokenBody(getRestoreToken()));
}

如何在 getObjectObservable 函数中实现后续步骤:

尝试使用运算符 onErrorResumeNext 像这样:

public Observable<MyObject> getObjectObservable() {
    return mApi.getObject()
            .onErrorResumeNext(restoreToken().flatMap(authResult ->  mApi.getObject()));
}