将Twitter Future [False]转换为特殊Future的惯用方式?

时间:2019-01-21 09:01:49

标签: scala 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())

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

0 个答案:

没有答案