0
问题描述
我有一个简单的类,功能简单buildUseCaseObservable
。功能应该做以下Observable中的处理错误
- 尝试从互联网第一
- 获取数据如果成功写入数据到数据库
- 如果有类似的异常失败:
ServerUnavailable
,SocketException
应读取数据库中的数据,也应该报告错误。 - 如果收到数据,但数据为空或为空,则应从数据库中读取数据。
基本上一切工作像预期,除了大胆点。如果从Web获取数据时发生问题,则只调用onError
,而不调用onNext
。
我发现有方法称为onErrorResumeNext
这基本上是做什么,我需要,但在这种情况下,我失去错误(onError
不叫,反而onNext
称)
问题
是像onCompleteWithError
这样的方法还是没有如何实现这样的东西不会失去错误?
@PerActivity
public class DataInteractor extends Interactor {
private RestService rest;
private DataService data;
@Inject
AuthorsInteractor(RestService rest, DataService data) {
this.rest = rest;
this.data = data;
}
@Override
protected Observable buildUseCaseObservable() {
return Observable.concat(
rest.getData().doOnNext(data -> data.setAuthors(authors)),
data.getData())
.first(data -> data != null && !authors.isEmpty());
}
}
,是有做一些更优雅的方式我想做的事 ? –
[此博客文章](http://blog.danlew.net/2015/06/22/loading-data-from-multiple-sources-with-rxjava/)可能对您有用@VictorApoyan。干杯。 –
@YeMinHtut谢谢它是有用的,但不是我的问题。 –