首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Scala Futures进行并行计算

使用Scala Futures进行并行计算
EN

Stack Overflow用户
提问于 2019-09-17 13:27:36
回答 2查看 178关注 0票数 0

我有一个函数,可以计算两个子函数,如下所示。

代码语言:javascript
运行
复制
def someFutureMethod1(input: Int): Int = {
      input + 1
    }

def someFutureMethod2(input: Int): Int = {
      input + 12
    }

def method1(sx: Int): Future[Int] = Future {

      val future: Int = someFutureMethod1(sx)
      val future2: Int = someFutureMethod2(future)

future.andThen{
return future
}
future2.andThen{
return future2
}


}

Print(method1(10))


expected result:
11
23

我想在第一个函数计算时立即返回结果,并在第二个函数计算时更新或附加到相同的结果。

第二个函数依赖于第一个function.As,一旦第一个函数成功执行,就应该返回结果。并将第一函数结果传递给第二函数以计算第二函数。如果计算了第二个函数,则只返回第二个函数的结果。

有没有办法做到这一点?

提前感谢!!

EN

Stack Overflow用户

发布于 2019-09-17 13:57:35

检查此代码片段(有函数签名修改),

代码语言:javascript
运行
复制
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global


def someFutureMethod1(input: Int): Future[Int] = Future {
  input + 1
}

def someFutureMethod2(input: Int): Future[Int] = Future {
  input + 12
}

def method1(sx: Int): Future[Int] = {
  val future1 = someFutureMethod1(sx)
  val future2 = someFutureMethod2(sx)

  for {
    f1 <- future1
    f2 <- future2
  } yield {
    f1 + f2 //add logic for your final output
  }
}
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57967833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档