2

我有一个PartialFuncton[Throwable,Future[Result]]称为errorMap来将 throwable 转换为结果或失败的未来。我可以通过这样的方式做到这lift一点getOrElse

val x: Future[Result] = errorMap.lift(e).getOrElse(Future.failed(e))

我认为同样应该可以实现applyOrElse,但我似乎无法弄清楚如何调用它来实现这一目标。我误解了什么applyOrElse是为了?

4

1 回答 1

6

第二个参数applyOrElse接受一个函数——在你的例子中是(Throwable) => Future[Result]

给它传递一个这样的函数:

errorMap.applyOrElse(e, _ => Future.failed(e))

或者干脆

errorMap.applyOrElse(e, Future.failed)

于 2015-04-24T04:49:46.213 回答