通过重复链接异步调用,我最终得到了这种可怕的类型:
Seq[Future[Option[Future[T]]]]
有没有办法将其简化为更易于管理:
Future[Seq[T]]
如:
def simplify[T](x: Seq[Future[Option[Future[T]]]]): Future[Seq[T]] = ???
避免使用Await
?
最佳答案
像这样:
def simplify[T](arg: Seq[Future[Option[Future[T]]]]):Future[Seq[T]] = {
val seq: Future[Seq[Option[Future[T]]]] = Future.sequence(arg)
val ret1 = seq.map { seq => Future.sequence(seq.flatten)}
ret1.flatMap(identity)
}
关于scala - Scala 中压平 'reactive' 调用结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25121143/