在 Scala 中从 List[Future[...] 转换为 List[...]

Transform from List[Future[...] to List[...] in Scala

scala 中是否有一种方法(或简单方法)可以帮助将 List[Future[...]] 转换为 List[...]

如果Seq中有这样的方法,那也是合适的。 我花了很多时间寻找,但我找不到任何东西。谢谢

你想要 Future.sequence 然后你得到一个 Future[List[A]] 然后你可以决定你想如何处理。

sequence可以把List[Future[A]]变成Future[List[A]]然后你就可以等待未来

val fxs: Future[List[Int]] = Future.sequence(List(Future(1), Future(2)))
val xs: List[Int] = Await.result(fxs, Duration.Inf)
// work with xs

然而,通常最好是映射未来而不是像这样等待

fxs.map { xs: List[Int] =>
  // work with xs
}