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