我有方法
def seqAll: Future[Seq[User]] = dbConfig.run(users.result)
def getAll: Seq[User] = Users.seqAll.map(a=>a)
第二种方法实际返回Future[Seq[User]]
,但我希望它只是Seq[User]
。我怎样才能做到这一点?
答案 0 :(得分:5)
您可以使用Await.result
,但这意味着使Future阻止而不是异步,这会消除使用未来的意义。当然,阻止对你来说可能不是问题。
如果你想以非阻塞方式获得结果,那么
Users.seqAll.map(a=>a) onComplete {
case Success(result) => // use result for something
case Failure(t) => // Handle error
}
答案 1 :(得分:1)
使用Await.result
:
import scala.concurrent.Await
import scala.concurrent.duration.DurationInt
def getAll: Seq[User] = Await.result(seqAll, 5.seconds)