结合从 SharedPrefs 获取价值和网络与 RxJava
Combining getting value from SharedPrefs and network with RxJava
将这些操作与 RxJava 结合起来的最佳方式是什么:
- 从共享首选项获取授权令牌
- 如果不存在或无效,从服务器获取。
- 使用有效请求执行请求。
假设您有两个可观察对象,一个来自共享首选项 returns AuthToken
,另一个来自服务器 returns AuthToken
:
Observable<AuthToken> authTokenFromPrefs = ...;
Observable<AuthToken> authTokenFromServer = ...;
然后从以上两个构造一个可观察对象,它使用 AuthToken
和 returns 服务调用的结果:
Observable<T> results =
authTokenFromPrefs
.filter(AuthToken::isValid)
.switchIfEmpty(authTokenFromServer)
.flatMap(authToken -> callService(authToken));
将这些操作与 RxJava 结合起来的最佳方式是什么:
- 从共享首选项获取授权令牌
- 如果不存在或无效,从服务器获取。
- 使用有效请求执行请求。
假设您有两个可观察对象,一个来自共享首选项 returns AuthToken
,另一个来自服务器 returns AuthToken
:
Observable<AuthToken> authTokenFromPrefs = ...;
Observable<AuthToken> authTokenFromServer = ...;
然后从以上两个构造一个可观察对象,它使用 AuthToken
和 returns 服务调用的结果:
Observable<T> results =
authTokenFromPrefs
.filter(AuthToken::isValid)
.switchIfEmpty(authTokenFromServer)
.flatMap(authToken -> callService(authToken));