私はscalaを使い慣れていません。いくつかの先物をscala 2.10RC3に結合しようとしています。 Futures
は、順番に実行する必要があります。文書Scala SIP14では、先物を順番に実行するために、方法andThen
が定義されています。私はこの方法をいくつか組み合わせてFutures
(以下の例を参照)を組み合わせました。私の期待は、それが6
を印刷することでしたが、実際には結果は0
です。私はここで間違って何をしていますか?私は2つの質問を持っています:Scalaの任意の数の先物を順番に結合します
最初に、なぜ結果は0
ですか?第2に、複数のFutures
をどのように組み合わせて、Future
が完了する前に2番目のFuture
の実行が開始しないようにするにはどうすればいいですか?
val intList = List(1, 2, 3)
val sumOfIntFuture = intList.foldLeft(Future { 0 }) {
case (future, i) => future andThen {
case Success(result) => result + i
case Failure(e) => println(e)
}
}
sumOfIntFuture onSuccess { case x => println(x) }
ありがとうございます!これはまさに私が必要としていたものです。 – Chrisse
+1これは私を大いに助けました! – pvorb