RxJava - 等待Observable完成

时间:2016-09-05 16:36:40

标签: android rx-java rx-android

我有两个Observable序列,即Observable1Observable2。它们都是在不同的调度程序上执行的。

Observable1从数据库中提取数据,而Observable2从服务器获取相同的数据。

这两个Observable序列的结果将使用主题发送到Observer

现在,如果没有互联网连接,那么Observable2会在onError()发布其Observable1事件之前执行onNext()

如何在Observable1开始发布之前等待onNext()发出Observable2事件?

这里有一些代码:

Observable1 = dataRepo.getItems().doOnNext({ serializedSubject.onNext(items)}).subscribeOn(Schedulers.io());

Observable2 = cloudRepo.getItems().doOnNext({ dataRepo.addAll(items) dataRepo.getItems().subscribe(serializedSubject)}). subscribeOn(Schedulers.io());

Observable.mergeDelayError(Observable1, Observable2) .subscribeOn(Schedulers.io()).subscribe(new Subscriber());

1 个答案:

答案 0 :(得分:2)

如果您不关心错误代码,请在每个Observable的末尾添加.onErrorResumeNext(Observable.empty());你只需要普通的merge运算符。