展平';反应性';Scala中的调用结果
通过反复链接异步调用,我最终得到了这种糟糕的类型:展平';反应性';Scala中的调用结果,scala,future,reactive-programming,Scala,Future,Reactive Programming,通过反复链接异步调用,我最终得到了这种糟糕的类型: Seq[Future[Option[Future[T]]]] 是否有办法将其简化为更易于管理的: Future[Seq[T]] 例如: def simplify[T](x: Seq[Future[Option[Future[T]]]]): Future[Seq[T]] = ??? 避免像这样使用wait?: def simplify[T](arg: Seq[Future[Option[Future[T]]]]):Future[Seq[T]
Seq[Future[Option[Future[T]]]]
是否有办法将其简化为更易于管理的:
Future[Seq[T]]
例如:
def simplify[T](x: Seq[Future[Option[Future[T]]]]): Future[Seq[T]] = ???
避免像这样使用wait
?:
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)
}
谢谢我想出了一个更简洁(尽管相当神秘):Future.sequence(x.map(u.flatte).flatMap(Future.sequence(u))