我有一个长时间运行的函数,它返回一个未来如下:
def longRunningFunction(signs: List[String], numOfWords: Int)
: Future[List[(String, Int)]] = Future{ /* computation */ }
我需要按如下方式减少Future的输出:
val all = (6 to 24).map(i => longRunningFunction(signs, i))
.reduce(_ ::: _)
但这似乎不起作用。有什么想法吗?
答案 0 :(得分:3)
Future.reduce(futures)(_ ::: _)
答案 1 :(得分:1)
这是你要找的东西吗?
def longRunningFunction(signs: List[String], numOfWords: Int): Future[List[(String, Int)]] = ???
val all: IndexedSeq[Future[List[(String, Int)]]] = (6 to 24).map(i => longRunningFunction(signs, i))
val result: Future[IndexedSeq[(String, Int)]] = Future.sequence(all).map(_.flatten)