
我是RxJava的新手.我的经验主要来自这些教程:
Here和here.
现在,我发现自己处于使用Retrofit2进行API调用的情况,该调用将返回Obesrvable< Accesstoken>.客户端将按以下方式调用此服务:
public Observable<TokenResult> authenticateWithClIEntCredentials() { return authService.authenticate("clIEnt_credentials").take(1);}名为Authenticator的类将从客户端调用#authenticateWithClIEntCredentials().
我想实现的是返回一个Observable< Boolean>布尔值. API调用完成后,即在onComplete()中从Authenticator类中获取数据,该访问令牌已成功获取并保存在Authenticator类内部的缓存中.
我尝试了defer运算符,但仍然迷路.
编辑
我知道我可以在参数中传递回调,但是Rx取代旧的经典回调方法的想法不是吗?
解决方法:
如果我正确理解了您的问题,那么您正在搜索的是:
clIEnt.authenticateWithClIEntCredentials() .map(token -> { // save `token` into cache return token; }) .flatMap(integer -> Observable.just(Boolean.TRUE)) .subscribe(aBoolean -> { // success }, throwable -> { // error });我不知道为什么在这种情况下,究竟为什么要精确地选择Observable< Boolean>更可取,因为该流已成功完成或没有完成,因此Completable更可取.然而,使用Observable< Boolean>发布解决方案.返回类型.
这是可完成的方法:
clIEnt.authenticateWithClIEntCredentials() .flatMapCompletable(integer -> { // save `token` into cache return Completable.complete(); }) .subscribe(() -> { // success }, throwable -> { // error }); 总结 以上是内存溢出为你收集整理的android-RxJava:知道何时可观察完成,并将布尔可观察的返回给调用方全部内容,希望文章能够帮你解决android-RxJava:知道何时可观察完成,并将布尔可观察的返回给调用方所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)