woj*_*ski 22 android subscriber rx-java retrofit rx-android
谁能解释我为什么这样的代码:
networApi.getList()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.doOnError(throwable -> {
throwable.getMessage();
})
.doOnNext(list -> {
coursesView.populateRecyclerView(list);
courseList = (List<Course>) courses;
}).subscribe();
Run Code Online (Sandbox Code Playgroud)
如果没有互联网进入doOnError但是进一步抛出它以便应用程序关闭,但代码如下:
networkApi.getList()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<List<? extends Course>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
e.getMessage();
}
@Override
public void onNext(List<? extends Course> list) {
coursesView.populateRecyclerView(list);
courseList = (List<Course>) list;
}
});
Run Code Online (Sandbox Code Playgroud)
按照我的预期工作,这意味着当没有互联网连接时,它什么都不做.
dav*_*ola 40
基本上,doOnError不处理错误,因为它不消耗它.它只是对它做了一些事情,例如记录它.(同样的是真实的doOnNext-它也不会消耗项目,该项目仍处于最终onNext的Subscriber).
错误仍然在链中发送,并且仍然会在onError您的链中发送Subscriber.
我很确定你的应用程序崩溃了OnErrorNotImplementedException,这是因为你根本没有任何方法Subscriber,因此没有onError方法.
| 归档时间: |
|
| 查看次数: |
6044 次 |
| 最近记录: |