如何链接多个可观察量?

时间:2015-11-09 22:05:48

标签: java android rx-java rx-android

我想说我想要显示服务器上的一些用户数据。我会搜索服务器,缓存它,然后将它呈现给用户。 所以我的初始RxJava代码看起来像这样:

 ApiClient.getUser(userId), //An Observable that will spit out a UserResponse
    .subscribeOn(Schedulers.io()) //for the API observable (Do i need this?)
    .flatMap(new Func1<UserResponse, Observable<DatabasePutResult>>() {
          @Override
           public Observable<DatabasePutResult> call(UserResponse response) {
                return Database.cacheUser(response);
             }
          })
    .subscribeOn(Schedulers.io()) //for the database observable
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(//handle DatabasePutResult object in onNext());

现在,我有两个问题。

  1. 这是连接两个Observable的正确方法吗?如果没有,我该怎么做呢?
  2. 如果我想处理Api Observable的onError,我能否以某种方式保持链条?如果没有,最好的方法是什么?我真的需要将链分成两组RxJava调用吗?

1 个答案:

答案 0 :(得分:1)

  1. 你不需要这个:
  2. .subscribeOn(Schedulers.io()) //for the API observable (Do i need this?)

    如果您感兴趣,可以通过以下代码查看当前主题的ID:

    Thread.currentThread().getId();
    其他一切都很好。

    1. 你应该看看这个:Error-Handling-Operators。在这种情况下,我建议仔细查看onErrorResumeNext( )
    2. 希望它会有所帮助。