gpt4 book ai didi

scala - 在 Akka 中直接使用 Futures

转载 作者:行者123 更新时间:2023-12-01 23:18:56 25 4
gpt4 key购买 nike

我无法按照说明创建 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" }
}

关于scala - 在 Akka 中直接使用 Futures,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14275878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com