scala - 将 Twitter Future[False] 转换为特殊 Future 的惯用方式?
问题描述
我想将一个错误的 Twitter Future[Boolean] 转换为一个特殊的 Future。
一种方法是过滤,然后将 PartialFunction 传递给rescue
:
theFuture
.filter(b => b) // if b is false, becomes exceptional
.rescue {
case Try.PredicateDoesNotObtain
=> Future.exception(new MyPreferredExceptionType())
}
另一种方法是 flatMap:
theFuture
.flatMap(b => if (b) Future.value(b) else Future.exception(new MyPreferredExceptionType())
但是这两种方式都显得笨拙且不习惯。建议?
解决方案
推荐阅读
- c - 用c在内存二进制文件中执行
- ruby - Ruby Sequel 和模式数组
- python - 类似于 pandas.ewm() 的排名逆权重
- swift - Crashlytics 导致崩溃
- amazon-cloudwatch-events - AWS Cloud watch 事件调度程序停止触发 lambda
- json - 如何通过 spark 读取带有重复列的 json?
- postgresql - 如何查询 PostgreSQL 真实数据库,而不是它的缓存?
- c++ - 检查用户是否有权在路径 p 处创建文件,而不在路径处创建文件
- pine-script - 如何仅计算筛选脚本上的最新蜡烛
- javascript - 事件侦听器“消息”,基于事件名称在 angularJs、javascript 中使用 promise 进行 API 调用