Ich bin neu in Scala und ich versuche, mehrere Futures in Scala 2.10RC3 zu kombinieren. Die Futures
sollte in sequentieller Reihenfolge ausgeführt werden. In dem Dokument Scala SIP14 ist die Methode andThen
definiert, um Futures in sequentieller Reihenfolge auszuführen. Ich habe diese Methode verwendet, um mehrere Futures
zu kombinieren (siehe Beispiel unten). Meine Erwartung war, dass es 6
druckt, aber tatsächlich ist das Ergebnis 0
. Was mache ich hier falsch? Ich habe zwei Fragen:Sequentiell kombinieren beliebige Anzahl von Futures in Scala
Erstens, warum ist das Ergebnis 0
. Zweitens, wie kann ich mehrere Futures
kombinieren, so dass die Ausführung der zweiten Future
nicht startet, bevor die erste Future
fertig ist.
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) }
Danke! Genau das habe ich gebraucht. – Chrisse
+1 Das hat mir sehr geholfen! – pvorb