Я новичок в scala, и я пытаюсь объединить несколько фьючерсов в scala 2.10RC3. Futures
должен выполняться в последовательном порядке. В документе Scala SIP14 метод andThen
определяется для выполнения фьючерсов в последовательном порядке. Я использовал этот метод для объединения нескольких 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) }