在Scala中从Future获取数据

Sou*_*nta 2 scala future

我有一个Future[List[Person]][1],我想得到List[Person]它.我该怎么做 ?

import scala.concurrent.Future
val futPersons : Future[List[Person]] = .... 
Run Code Online (Sandbox Code Playgroud)

Pra*_*nna 8

有多种方式:

futPersons.map { personList =>
  ....
}
Run Code Online (Sandbox Code Playgroud)

此地图返回另一个地图,Future包含您从地图返回的任何内容.仅当将来成功完成时,映射才会执行.如果需要处理失败,可以使用onComplete

futPersons.onComplete {
  case Success(personList) => ...
  case Failure(exception)  =>  ... 
}
Run Code Online (Sandbox Code Playgroud)

或者您可以等待将来完成(这是阻止):

val personList: List[Person] = Await.result(futPersons, 1 minutes)
Run Code Online (Sandbox Code Playgroud)