我是一名RxJava的新手,我的经验主要来自以下教程: 这里 和 这里。
现在,我发现自己的情况是,我有一个使用Retrofit2进行API调用的服务,将返回一个
现在,我发现自己的情况是,我有一个使用Retrofit2进行API调用的服务,将返回一个
Obesrvable<AccessToken>
。客户端将按照以下方式调用此服务:public Observable<TokenResult> authenticateWithClientCredentials() {
return authService.authenticate("client_credentials").take(1);
}
一个名为Authenticator
的类将从客户端调用#authenticateWithClientCredentials()
。
我想要实现的是,当API调用完成后,在onComplete()
内部从Authenticator
类返回一个Observable<Boolean>
,以指示访问令牌已成功获取并保存在缓存中。
我尝试过使用defer
操作符,但仍然感到困惑。
编辑
我知道我可以在参数中传递回调函数,但Rx的理念不是要取代旧的经典回调方法吗?
Completable
表示一个流,它要么完成,要么失败(即只存在onComplete()
和onError()
方法)。在您的情况下,逻辑上讲,无论是您正在执行的操作完成还是以错误终止,都是合理的。显然,这不是一个由Observable<Boolean>
表示的无限布尔值流。 - azizbekian