【发布时间】:2012-11-29 23:28:25
【问题描述】:
我是 scala 的新手,我尝试在 scala 2.10RC3 中结合几个 Futures。 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) }
【问题讨论】:
标签: scala concurrency future