如何在Scala中向Future添加回调?

Mic*_*ael 2 concurrency scala future

我在这里看到一个例子:

val fut = Future { ... // my body function } // my body function starts here
fut onComplete { ... // my callback }

看起来我可以在完成我的身体功能添加回调.它仍被调用吗?无论如何,我希望我的函数开始运行之前为未来添加回调.是否有意义 ?我怎样才能做到这一点 ?

om-*_*nom 7

你的第一点非常清楚文档:

如果在注册回调时已经完成了未来,则回调可以异步执行,也可以在同一线程上顺序执行.

至于你后面的问题 - 你可以把你需要的代码作为未来主体的第一行运行,例如:

def futureWithBefore[T](body: => T, before: => Any) = future {
  before()
  body()
} 
Run Code Online (Sandbox Code Playgroud)