期货的一般信息
您将找到有关的所有信息Futures你需要http://docs.scala-lang.org/overviews/core/futures.html http://docs.scala-lang.org/overviews/core/futures.html.
一种可能的方法是等待结果,但在产品应用程序中使用并不好。
val myFutureResult : Future[T] = Future {...}
val myResult : T = Await.result(myFutureResult, secondsToWait seconds)
通常,您可以不必等待结果并将其存储在变量中map
未来并撰写它,并且仅在最后一刻使用 Await。
val myFutureResult : Future[T] = Future {...}
def myFunctionOnT(in: T) = ...
for {res <- myFutureResult } yield myFunctionOnT(res)
游戏与未来
Play本身可以处理Future[T]
默认情况下使用Action.async {}
代替Action{}
在这里你可以找到更多:https://www.playframework.com/documentation/2.5.x/ScalaAsync https://www.playframework.com/documentation/2.5.x/ScalaAsync
此信息适用于扩展问题
db.run(unionPermissionQuery.result).map(_.map(_.name).toList).map { permission =>
models.admin.User(
UUID.fromString(user.userid),
user.firstname,
user.lastname,
user.jobtitle,
loginInfo,
user.email,
user.emailconfirmed,
Some(permission),
user.enabled)
}