【发布时间】:2016-09-06 07:39:40
【问题描述】:
我有两个Observable 序列,即Observable1 和Observable2。它们都在单独的调度程序上执行。
Observable1 从数据库获取数据,而Observable2 从服务器获取相同的数据。
这两个Observablesequences 的结果使用主题发送到Observer。
现在如果没有互联网连接,那么Observable2 在Observable1 可以发布其onNext() 事件之前执行onError()。
如何在Observable2 开始发射之前等待Observable1 发射其onNext() 事件?
这里有一些代码:
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());
【问题讨论】:
-
您是否尝试过使用合并运算符。reactivex.io/documentation/operators/merge.html
-
谢谢@blackpanther。我想我可以使用 mergeDelayError 运算符让它工作。会试试的:)
-
延迟合并仍然会在 onNext 之前发出 onError。 :( 发布了一些示例代码供参考。
标签: android rx-java rx-android