RxJava 只想在 api 调用成功时调用缓存



我对RxJava很陌生,似乎找不到这个用例的解决方案。我已经研究了 2 天了,但没有运气。

我有 2 个单身,远程和缓存,用于在我的应用程序中注册用户

我首先调用远程,它将用户数据保存在服务器上,并返回一个自定义代码以指示已成功保存。我只想在从远程检查自定义代码并取得成功后调用缓存。如果自定义代码失败,我想返回它,根本不去缓存

您要查找的运算符是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...

最新更新