了解Scala期货和承诺

时间:2015-05-07 10:17:16

标签: scala promise future

我试图理解这个概念。我清楚地了解期货是什么。我对Promises有点困惑。下面的代码段:

val p = Promise[Int]() // gives me a DefaultPromise
val f = p.future // gives me the future computation for the Promise p

现在以下两个代码片段有什么区别?

p success { 10 }

val x = Future {
  p success { 10 }
}

我对第一个的理解是p成功将完成与p相关的未来计算。这个计算是异步的吗?对于使用Future块来完成与Promise p相关联的Future f的第二个代码片段有何不同?

1 个答案:

答案 0 :(得分:3)

在您的示例中,您可以考虑等效的p success { 10 }Future(10)。您只需要从p中提取未来以获得相同的结果。

您可以将Promises视为可写Future,您可以在其中定义计算的成功或失败。由于它看起来有点必要的编程,你可能会在非常特殊的情况下使用它们。您可以在此link中看到其中一些案例。