android-RxJava:知道何时可观察完成,并将布尔可观察的返回给调用方

android-RxJava:知道何时可观察完成,并将布尔可观察的返回给调用方,第1张

概述我是RxJava的新手.我的经验主要来自这些教程:Here和here.现在,我发现自己处于使用Retrofit2进行API调用的情况,该调用将返回Obesrvable<AccessToken>.客户端将按以下方式调用此服务:publicObservable<TokenResult>authenticateWithClientCredentials(){returnauthS

我是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:知道何时可观察完成,并将布尔可观察的返回给调用方所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1091844.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存