Scala for comprehension - 使用 IndexedSeq 链接 Future

Scala for comprehension - chaining Future with IndexedSeq

有没有可能达到这样的效果:

for {
  numberOfLines <- Future { getNumberOfLines() }
  i <- 0 to numberOfLines
  result <- Future { extractResultFromLine(i) }
} yield result

我希望大家清楚我的意图。

您可以使用Future.traverse

// Gives you a Future[IndexedSeq[`whatever extractResult returns`]]
for {
    numberOfLines <- Future{getNumberOfLines()}
    result <- Future.traverse(0 to numberOfLines)(i => Future(extractResultFromLine(i)))
} yield result