在 Scala 中,如何将期货列表转换为返回第一个成功未来的未来?

yal*_*lis 4 scala future

所有的期货最终可能会成功(有些可能会失败),但我们希望第一个成功。并希望将这一结果表示为未来。如果列表中的所有期货都失败,则此期货将失败。

cch*_*tep 5

正如所指出的,提供了文档Future.firstCompletedOf

import scala.concurrent.{ExecutionnContext, Future }

def foo[T](f: => Seq[Future[T]])(implicit ec: ExecutionContext): Future[T] =
  Future.firstCompletedOf(f)
Run Code Online (Sandbox Code Playgroud)