我无法按照此处的说明创建未来.它表示您可以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)
Run Code Online (Sandbox Code Playgroud)
使用完全相同的代码,我得到一个错误消息,说:error: could not find implicit value for parameter executor: akka.dispatch.ExecutionContext.所有我能找到的ExecutionContext就是,你可以用它"做事".在文档中,我发现的唯一一行是:
implicit val ec = ExecutionContect.fromExecutionService(yourExecutionServiceGoesHere)
Run Code Online (Sandbox Code Playgroud)
但这对我没用.有人对我这个话题有什么建议吗?如何在Future不询问的情况下创建新的Actor?
如果你有一个ActorSystem那么它将有一个ExecutionContext可以在这里使用.它必须是implicit,除非你明确地将它传递给Future.apply方法.
出于演示的目的,如果您只想查看它在REPL中的工作原理:
implicit val system = ActorSystem("MySystem").dispatcher
Run Code Online (Sandbox Code Playgroud)
(对象ActorSystem => ExecutionContext上还有一个隐式转换ExecutionContext.)
要创建模块化代码,而不在使用点之前创建上下文,请考虑使上下文成为特征的抽象成员:
trait MyFutures {
implicit val context: ExecutionContext
def helloFuture: Future[String] = Future { "hello" + "world" }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3845 次 |
| 最近记录: |