Scala 从未来获得价值

Scala 从未来获得价值,scala,future,Scala,Future,我有办法 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,但这意味着使未来阻塞而不是异步,这就失去了使用未来的意义。当然,阻塞对您来说可能不是问题 如果您确实希望以非阻

我有办法

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
,但这意味着使未来阻塞而不是异步,这就失去了使用未来的意义。当然,阻塞对您来说可能不是问题

如果您确实希望以非阻塞方式获得结果,您可以这样做

Users.seqAll.map(a=>a) onComplete {
  case Success(result) => // use result for something
  case Failure(t) => // Handle error
}
可能重复的
Users.seqAll.map(a=>a) onComplete {
  case Success(result) => // use result for something
  case Failure(t) => // Handle error
}