1
このコードの目的は、一連の先物を受け取り、Future.sequence
で処理し、別の一連の先物を生成し、別のFuture.sequence
で再度処理することです。2つの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]] 'が生成され、余分なレイヤーを削除したいのです。 –