从未来获取价值
Get value from future
我有方法
def seqAll: Future[Seq[User]] = dbConfig.run(users.result)
def getAll: Seq[User] = Users.seqAll.map(a=>a)
第二种方法实际上 returns Future[Seq[User]]
,但我希望它只是 Seq[User]
。我怎样才能做到这一点?
import scala.concurrent.Await
import scala.concurrent.duration.DurationInt
def getAll: Seq[User] = Await.result(seqAll, 5.seconds)
你可以使用 Await.result
但这意味着 Future 是阻塞的而不是异步的,这就失去了使用 future 的意义。当然,阻塞对您来说可能不是问题。
如果您确实想以非阻塞方式获得结果,您可以这样做
Users.seqAll.map(a=>a) onComplete {
case Success(result) => // use result for something
case Failure(t) => // Handle error
}
我有方法
def seqAll: Future[Seq[User]] = dbConfig.run(users.result)
def getAll: Seq[User] = Users.seqAll.map(a=>a)
第二种方法实际上 returns Future[Seq[User]]
,但我希望它只是 Seq[User]
。我怎样才能做到这一点?
import scala.concurrent.Await
import scala.concurrent.duration.DurationInt
def getAll: Seq[User] = Await.result(seqAll, 5.seconds)
你可以使用 Await.result
但这意味着 Future 是阻塞的而不是异步的,这就失去了使用 future 的意义。当然,阻塞对您来说可能不是问题。
如果您确实想以非阻塞方式获得结果,您可以这样做
Users.seqAll.map(a=>a) onComplete {
case Success(result) => // use result for something
case Failure(t) => // Handle error
}