我是 scala 的新手,我尝试在 scala 2.10RC3 中结合几个期货。Futures
应该按顺序执行。在文档Scala SIP14中定义了该方法andThen
,以便按顺序执行 Futures。我用这种方法组合了几个Futures
(见下面的例子)。我的期望是它会打印6
,但实际上结果是0
. 我在这里做错了什么?我有两个问题:
首先,为什么是结果0
。其次,我怎样才能组合几个Futures
,以便在第一个完成Future
之前不会开始执行第二个。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) }