我有一个PartialFuncton[Throwable,Future[Result]]
名为 errorMap ,用于将throwable转换为结果或将来失败。我可以通过lift
和getOrElse
这样做:
val x: Future[Result] = errorMap.lift(e).getOrElse(Future.failed(e))
我认为使用applyOrElse
可以实现同样的目标,但我似乎无法弄清楚如何调用它来实现这一目标。我误解了applyOrElse
的用途吗?
答案 0 :(得分:6)
applyOrElse
的第二个参数需要一个函数 - 在您的情况下为(Throwable) => Future[Result]
传递一个这样的函数:
errorMap.applyOrElse(e, _ => Future.failed(e))
或只是
errorMap.applyOrElse(e, Future.failed)