android - RxJava double doOnError 未显示
问题描述
我正在将 RxJava 与 Retrofit2 一起使用,试图通过多次调用来使用 API,但我想根据 API 调用显示不同的错误消息。因此,每当发生某些事情时,我传递给它的subscribe方法的错误,以及doOnError方法也会写入我想要的日志(下面的最后一个 doOnError 调用)。
当我想在第一个flatMap中设置一个doOnError方法时,问题就开始了。所以,当我尝试时,它应该显示一条消息......但它没有,它实际执行的是订阅方法中的消费者。
try {
api = APIClient.getApiService();
Single.fromCallable(() -> generateReport(reportInfo))
.flatMap(report -> api.sendHashCode(new HashObject(report))
.doOnError(t -> showMessage("THIS ERROR IS NOT SHOWN" + t.getMessage())))
.flatMap(response -> api.getSMS(new Signature(response.getSignatureId())))
.doOnError(t -> generateExceptionLog(t.getMessage()))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(onSuccess, onError);
} catch (Exception e) {
generateExceptionLog(e);
}
请问有什么帮助吗?
解决方案
推荐阅读
- java - 如何删除客户端上的 HttpOnly Cookie?
- html - 如何将图像标签插入 html 字符串?
- python - C++ 中的嵌入式 Python 不能两次导入 pandas
- c# - 通过从 resx 文件中翻译的字符串获取名称
- amazon-web-services - AWS 负载均衡器 - 所有 EC2 实例均未通过运行状况检查并显示已停止服务。为什么?
- r - 选择下拉元素会导致错误:“元素当前不可见,可能无法操作”
- google-bigquery - BigQuery 加入需要大量时间
- javascript - 单击按钮时无法在laravel ajax中下载文件
- c# - C# 使用 JsonConverter 将 Json List 转换为 List 对象
- ajax - 出现的原因是什么 - 对象 url 未定义?