减少期货清单

时间:2016-07-04 21:08:16

标签: scala dictionary future

我有一个长时间运行的函数,它返回一个未来如下:

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(_ ::: _)

但这似乎不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

Future.reduce(futures)(_ ::: _)

Documentation

答案 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)