减少期货清单

Reducing a list of futures

我有 long 运行 函数,returns 未来如下:

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

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

这是您要找的东西吗?

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)
Future.reduce(futures)(_ ::: _)

Documentation