scala之在 Akka 中直接使用 Futures
我无法按照说明创建 Future here .它说您可以使用以下代码直接创建一个Future:
import akka.dispatch.Await
import akka.dispatch.Future
import akka.util.duration._
val future = Future {
"Hello" + "World"
}
val result = Await.result(future, 1 second)
使用完全相同的代码,我得到一条错误消息,说:error: could not find implicit value for parameter executor: akka.dispatch.ExecutionContext。关于 ExecutionContext,我所能找到的全部信息是,您可以用它“做事”。在文档中,我找到的唯一一行是:
implicit val ec = ExecutionContect.fromExecutionService(yourExecutionServiceGoesHere)
但这对我没有用。有人对我这个话题有什么建议吗?如何在不询问 Actor 的情况下创建新的 Future?
请您参考如下方法:
如果您有一个 ActorSystem,那么它将有一个可以在这里使用的 ExecutionContext。它必须是隐式,除非您将它显式传递给Future.apply 方法。
出于演示的目的,如果您只是想看看它在 REPL 中是如何工作的:
implicit val system = ActorSystem("MySystem").dispatcher
(ExecutionContext 对象上还有一个隐式转换ActorSystem => ExecutionContext。)
要创建模块化代码,而不是在使用点之前创建上下文,请考虑使上下文成为特征的抽象成员:
trait MyFutures {
implicit val context: ExecutionContext
def helloFuture: Future[String] = Future { "hello" + "world" }
}
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



