在 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
}
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
}