在 Play Framework 2.3 中,动作可以从成功的未来调用中产生结果,如下所示:
def index = Action.async {
val futureInt = scala.concurrent.Future { intensiveComputation() }
futureInt.map(i => Ok("Got result: " + i))
}
但是一个动作如何处理失败的未来调用,即通过调用failure()
而不是完成的未来success()
?
例如,一个动作如何产生一个InternalServerError
结果,并在未来的失败的可抛出中返回消息?
onComplete
并且onFailure
回调似乎不适合动作的流程(它需要从成功的未来或失败的未来返回结果)。