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

时间:2017-11-18 20:58:33

标签: android observable reactive-programming rx-java2

我是RxJava的新手,似乎无法找到解决此用例的方法。我现在已经研究了2天而且没有运气。

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

我首先调用remote,将用户数据保存在服务器上,并返回一个自定义代码,表示已成功保存。我从远程检查自定义代码并获得成功后才想调用缓存。如果自定义代码失败,我想返回它,而不是全部转到缓存

1 个答案:

答案 0 :(得分:1)

您正在寻找的运算符是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 ...