java - 是否可以从进入 map/flatMap 的 Observable 返回两种不同的类型?
问题描述
我想知道是否可以做这样的事情:
我有一个返回 Observable 的函数,如下所示:
Observable<JSONObject> = someMethodCall().map( x -> {
/// do something
return new JSONObject().put("id", 12346");
});
现在我想深入,在 //do something 想要添加一些逻辑,所以我可以返回一个Observable.error
,为此我不能使用map
但是 flatMap,我想知道是否有任何方法可以使用 flatMap 来处理这种行为?
解决方案
假设您希望通过 传播错误onError
,以便您可以使用onErrorReturn
or之类的东西onErrorResumeNext
,您可以flatMap
像这样使用:
Observable<JSONObject> = someMethodCall().flatMap( x -> {
try {
//do something....
return Observable.just(new JSONObject().put("id", 12346"));
} catch (Throwable t) {
return Observable.error(t);
}
});
推荐阅读
- spring-boot - 无法使用 Spring Fox 启动 bean 'documentationPluginsBootstrapper' Spring boot Swagger 实现?
- mysql - 如何更新 JSON 列数组字段 MySql
- javascript - 如何等到所有的 Promise 都实现?
- mongodb - 如何使用 Spring Boot 从 MonogoDb 获取准确的 id
- php - php函数内爆换行的问题
- batch-rename - 为什么这只是在提示 id 后关闭 cmd?
- here-api - {状态:401,消息:“无效的 app_id app_code 组合”}
- python - 熊猫,紧凑的数据框 - 合并多列
- gsm - 我可以将 Android 下载到 GSM 套件吗?
- python - 使用 SQLAlchemy 和 Flask 时数据库存储在哪里?