rx-java2 - Rxjava2:将异常映射到 Single
问题描述
我正在尝试编写一个返回的方法Single<Boolean>
,它的功能是检查 HTTP 服务器是否处于活动状态。
所以它向服务器发送一个 ping 并且在服务器在线的情况下它工作正常,但如果服务器关闭它返回一个传播到的异常subscribe
。我想捕获异常并将其映射到方法中false
并在内部返回isAlive
。
这是我的尝试:
public Single<Boolean> isAlive()
{
return client().get(HEALTH_CHECK_PATH) //
.rxSend() //
.onErrorReturnItem(null) //
.map(response -> {
return response.statusCode() == HttpResponse.HTTP_STATUS_NO_CONTENT;
});
}
我试图返回null
并map
检查 null 并相应地返回一个布尔值 - map Single 不处理null
....任何想法?谢谢。
编辑-1
我试过了:
.onErrorResumeNext(err -> Single.just(Boolean.FALSE))
它不编译..
解决方案
通过这样做解决:
public Single<Boolean> isAlive()
{
return client().get(HEALTH_CHECK_PATH) //
.rxSend() //
.map(response -> response.statusCode() == HttpResponse.HTTP_STATUS_NO_CONTENT)//
.onErrorResumeNext(err -> Single.just(Boolean.FALSE));
}
推荐阅读
- r-markdown - 使用源自定义编织按钮
- list - Haskell 递归
- r - 如何使R在存储时显示19位数字?
- reactjs - 如何使用 Ionic React 存储可以跨页面和组件访问和修改的变量?
- python - C++ .so 的 Python 包装器仅在将代码复制到 docker 映像时才可用,而不是在按卷挂载时可用?
- c - 队列的外部类型定义
- git - 在 github 的 master 分支中管理多个项目
- r - show_modal_spinner 在 Rshiny 中生成输出之前立即消失
- javascript - 即使用户不拥有角色,机器人也会为用户分配角色
- scala - Scala 项目中的异常 java.lang.NoClassDefFoundError: scala/collection/SeqLike 不引用 SeqLike 类 - 为什么?