kotlin - 如果verify()返回Mono.error(TheException()),如何避免调用get(id)方法
问题描述
首先需要verify()
一些东西,如果一切正常则调用get(id)
方法来获取实体,否则不需要调用get(id)
。方法verifyThenGet(id)
代码怎么写?
fun verifyThenGet(id: Int) : Mono<MyEntity> {
return verify().then(get(id)) // also invoke get(id) even verify failed
}
// return Mono.empty() if success to verify,
// otherwise return Mono.error(TheException())
fun verify() : Mono<Void>
// get the entiry
fun get(id: Int) : Mono<MyEntity>
解决方案
鉴于对您的代码的注释,您的方法看起来verify
应该具有以下签名:
fun verify(): Unit
在 Kotlin 中,通常你只会抛出一个Exception
错误而不是返回一个错误(也许你有自己的错误类型要返回?在这种情况下,MyError?
如果你真的想要的话,可能会返回)。
get
应该看起来像这样:
fun get(id: Int): MyEntity?
?
类型名称末尾的 表示返回值是可选的,所以它可能是null
.
verify
与您的功能相结合get
是微不足道的:
fun verifyThenGet(id: Int): MyEntity? {
verify()
return get(id)
}
推荐阅读
- vue.js - 从计算数据访问 Vue 组件道具
- amazon-s3 - Airflow/minio:如何使用 minio 作为本地 S3 代理来处理从 Airflow 发送的数据?
- python - 如何在graphene-python DjangoObjectType中获取模型的当前实例
- java - 使用 Selenium 在 Chrome 上处理“您与此站点的连接不是私有的”弹出窗口
- javascript - 如何解决“不变违规:此导航器缺少导航道具”?
- google-cloud-messaging - 是否必须从 GCM 迁移到 FCM 以获取 chrome/浏览器通知
- python - 如何将列表中的每个项目连接到特定的 URL?
- mysql - 使用紧凑的 laravel 显示数据
- java - 如何修复 Netbeans 中的“未找到 Log4j 2 配置文件”?
- python - 如何在烧瓶应用程序的索引页面中访问另一个网页?