我有两个Observable
序列,即Observable1
和Observable2
。它们都是在不同的调度程序上执行的。
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());
答案 0 :(得分:2)
如果您不关心错误代码,请在每个Observable的末尾添加.onErrorResumeNext(Observable.empty())
;你只需要普通的merge
运算符。