我正在使用play-slick。我试图在播放光滑的DBaction中尝试回归未来,但我失败了:
def test = DBAction(parse.json){ implicit request =>
scala.concurrent.Future {
NotFound(Json.obj("error" -> "some error"))
}
}
[error] found : scala.concurrent.Future[play.api.mvc.Result]
[error] required: play.api.mvc.Result
我如何回归这个未来? Async {}现在已经在2.3中消失了,而DBAction()。async(正如文档所说的用于正常游戏 - 未来的动作)似乎不可用。
答案 0 :(得分:1)
我最近有同样的问题/问题,因为我使用Future.firstCompleteOf( DB调用,超时),对我来说似乎有用的是使用DB.withSession代替。
所以我的控制器操作仍然在Action.async块中,然后我的Future看起来像
Future.firstCompleteOf(Seq(Future(
DB.withSession {implicit session => MyTable.findById(id) } ), timeoutFuture) ).map {
case Whatever => …
}.recoverWith {
case Whatever => …
}