Im folgenden Beispiel, was ist das erwartete Verhalten?Scala Karte über eine Zukunft
import scala.concurrent.ExecutionContext.Implicits.global
val someFuture = Future { 1+1 }.map(elem => {
println("mapping immediately")
elem.toString
})
someFuture.onComplete {
case scala.util.Success(value) => println(s"Got the callback = $value")
case Failure(e) => e.printStackTrace()
}
Ist der folgende Ausgang immer garantiert?
mapping immediately
Got the callback = 2
Ja, das ist der Sinn der Karte, Dinge zu verketten und Ihnen eine neue Zukunft zu geben, in der die Berechnungen verkettet sind. – flavian
Wenn Sie fragen, ob die Mapping-Funktion immer ausgeführt wird, bevor das Ergebnis der Mapping-Funktion dem onComplete-Handler übergeben wird, dann yes. – rompetroll
Cool! Das habe ich erwartet – sparkr