Scala中的未来返回类型

时间:2014-07-23 19:26:01

标签: scala

我在Scala REPL中创建了一些简单的代码:

import scala.concurrent.ExecutionContext.Implicits.global
Future { println("Hello from the future") }  

并注意到输出是这样的:

scala> Future { println("Hello from the future") }             
Hello from the future
res5: scala.concurrent.Future[Unit] = scala.concurrent.impl.Promise$DefaultPromise@1706a01b 

为什么未来的价值是承诺?我认为Promise包含Future,而不是相反?

2 个答案:

答案 0 :(得分:0)

在Future API中,apply(工厂/构造函数Future[T](=> T))被指定为返回Future[T]。除了异步编程的抽象之外,它还具有ExecutionContext特有的实现细节(不需要知道)。实现可能与另一个执行上下文不同。

答案 1 :(得分:0)

每个Future都有一个对应的Promise。您获得的对象是DefaultPromise,它同时实现FuturePromise。但是,这是一个实现细节。