【问题标题】:Compose futures by Scala Async通过 Scala Async 编写期货
【发布时间】:2015-09-07 11:25:56
【问题描述】:

有期货 f1、f2 和 f3。如果我们需要等到 f1 and f2 都完成 or f3 完成,即条件看起来像completed(f1) & completed(f2) | completed(f3),我们如何使用Scala Async 来流畅地组合它?

【问题讨论】:

    标签: scala concurrency async-await


    【解决方案1】:

    我不知道异步,但您可能会找到使用Future.firstCompletedOfpromises 的解决方案。 SO 上已经有一个post 与此相关。

    如果您不关心取消期货,您可以简单地执行以下操作:

    val f1 = Future { /*...*/ }
    val f2 = Future { /*...*/ }
    val f3 = Future { /*...*/ }
    
    Future.firstCompletedOf(Seq(f1.flatMap(f2), f3))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 2013-04-27
      • 2015-07-22
      • 2021-03-02
      相关资源
      最近更新 更多