【发布时间】:2016-04-12 16:58:11
【问题描述】:
我有办法
def seqAll: Future[Seq[User]] = dbConfig.run(users.result)
def getAll: Seq[User] = Users.seqAll.map(a=>a)
第二种方法实际上返回Future[Seq[User]],但我希望它只是Seq[User]。我怎样才能做到这一点?
【问题讨论】:
我有办法
def seqAll: Future[Seq[User]] = dbConfig.run(users.result)
def getAll: Seq[User] = Users.seqAll.map(a=>a)
第二种方法实际上返回Future[Seq[User]],但我希望它只是Seq[User]。我怎样才能做到这一点?
【问题讨论】:
您可以使用Await.result,但这意味着使 Future 成为阻塞而不是异步的,这消除了使用 Future 的意义。当然,阻塞对您来说可能不是问题。
如果您确实想以非阻塞方式获得结果
Users.seqAll.map(a=>a) onComplete {
case Success(result) => // use result for something
case Failure(t) => // Handle error
}
【讨论】:
import scala.concurrent.Await
import scala.concurrent.duration.DurationInt
def getAll: Seq[User] = Await.result(seqAll, 5.seconds)
【讨论】: