是否有可能实现这样的目标:
for {
numberOfLines <- Future { getNumberOfLines() }
i <- 0 to numberOfLines
result <- Future { extractResultFromLine(i) }
} yield result
我希望很清楚我的意图是什么。
答案 0 :(得分:2)
您可以使用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