RxJava 只希望在 api 调用成功时调用缓存
RxJava Only want to call cache when api call is success
我是 RxJava 的新手,似乎无法找到解决此用例的方法。我已经为此研究了 2 天,但没有运气。
我有 2 个 Singles,远程和缓存,用于在我的应用程序中注册用户
我首先调用 remote 将用户数据保存在服务器上,returns 是一个自定义代码以指示已成功保存。我只想在远程检查自定义代码并成功后调用缓存。如果自定义代码失败,我想return那个,根本不去缓存
您要查找的运算符是 flatMap。示例:
remoteApi.login().flatMap(new Function<String, SingleSource<String>>() {
@Override public SingleSource<String> apply(String response) throws Exception {
if (response.equals("success")) {
// do what you want to do with cache
return cache.save(response);
}
return Single.just(response);
}
}).subscribe(yourObserver);
别忘了使用 subscribeOn 和 observeOn...
我是 RxJava 的新手,似乎无法找到解决此用例的方法。我已经为此研究了 2 天,但没有运气。
我有 2 个 Singles,远程和缓存,用于在我的应用程序中注册用户
我首先调用 remote 将用户数据保存在服务器上,returns 是一个自定义代码以指示已成功保存。我只想在远程检查自定义代码并成功后调用缓存。如果自定义代码失败,我想return那个,根本不去缓存
您要查找的运算符是 flatMap。示例:
remoteApi.login().flatMap(new Function<String, SingleSource<String>>() {
@Override public SingleSource<String> apply(String response) throws Exception {
if (response.equals("success")) {
// do what you want to do with cache
return cache.save(response);
}
return Single.just(response);
}
}).subscribe(yourObserver);
别忘了使用 subscribeOn 和 observeOn...