android - 如何在 RxJava2 中的错误返回时发出多个项目?
问题描述
我想通过发出 2 个项目来处理异常。我想要类似的东西
handleHttpResponse(): Observable()
LoadingOn, LoadingOff, OnError(error): Item
aHttpObservable()
.flatMap{ handleHttpResponse() }
.startWith{ Observable.just(LoadingOn) }
.concatWith{ Observable.just(LoadingOff) }
.onErrorReturn{ error -> Observable.just(LoadingOff, OnError(error)) }
或者因为两者onComplete
或onError
我必须关闭加载对话框,我可以有类似的东西
aHttpObservable()
.flatMap{ handleHttpResponse() }
.startWith{ Observable.just(LoadingOn) }
.onTerminate{ Observable.just(LoadingOff) }
.onErrorReturn{ error -> OnError(error) }
我怎样才能做到这一点?谢谢。
解决方案
采用onErrorResumeNext()
Observable.error(new RuntimeException("test"))
.onErrorResumeNext(error -> {
return Observable.just("a_message", error.toString());
})
.subscribe(System.out::println);
推荐阅读
- arrays - 表达式在数组中必须有指向对象类型错误
- tsql - 尝试在 Auzre 数据仓库中将列更改为非空时出错
- python - 从集合中弹出一个元素时如何选择元素?
- rust - 遍历 BST 时借用临时值下降
- javascript - 当它不起作用时如何管理滚动到底部?
- java - 在 Java Swing 中处理 ProgressBar
- node.js - 无法让“$set”(猫鼬)工作,我只需要更新我的 mongo DB 数据库中的一个变量
- angular - 接收照片文件并将其保存在 Angular 9 的数组中
- c++ - 在.cpp文件中写C语言会影响吗?
- python - 这是 Pandas 等效的 SQL Dense Rank over a Sorted Partition 吗?