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
有没有可能达到这样的效果:
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