首页 > 解决方案 > 将 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())

但是这两种方式都显得笨拙且不习惯。建议?

标签: scalafuture

解决方案


推荐阅读