如何压缩Scala中的期货清单

mik*_*477 33 scala list flatten

我想拿这个val:

val f = List(Future(1), Future(2), Future(3))
Run Code Online (Sandbox Code Playgroud)

对它进行一些操作(我当时想要弄平)

f.flatten
Run Code Online (Sandbox Code Playgroud)

得到这个结果

scala> f.flatten = List(1,2,3)
Run Code Online (Sandbox Code Playgroud)

如果这里的展平方法不合适,那很好.只要我得到结果.

谢谢!

Gab*_*lla 68

Future.sequence拿a List[Future[T]]并返回a Future[List[T]].

你可以做

Future.sequence(f) 
Run Code Online (Sandbox Code Playgroud)

然后使用maponComplete在其上访问值列表.