1
该代码的目标是采取一系列期货,用Future.sequence
处理它们,生成另一个期货系列,再用另一个系列Future.sequence
处理它们。两个Future.sequence的序列不起作用
问题是它不打印任何东西。这段代码有什么问题?
object TestFutures extends App {
def future (i:Int) = Future { i }
def future2 (i:Int) = Future { i * 20 }
val futureResult = (1 to 10).map {
x => future(x)
}
var futureInts = Seq[Future[Int]]()
Future.sequence(futureResult).map{ list =>
list.foreach(y => futureInts = futureInts :+ future2(y))
}
Future.sequence(futureInts).map { list2 =>
list2.foreach(z => println(z))
}
Thread.sleep(5000)
}
你为什么使用flatMap? – ps0604
@ ps0604因为使用'sequence'(flatMap中的内部函数)会产生一个'Future [Future [Seq [Int]]',我想删除额外的图层。 –