考虑下面的代码:提取未来阿卡HTTP
class TestActor extends Actor {
def receive = {
case "hello" =>
sender ! Future {
"Sample future result"
}
}
}
我已经定义了以下路线:
def r5: Route = {
pathPrefix("check") {
onSuccess(system.actorOf(Props[TestActor]).ask("hello")) {
successResult =>
complete {
"The result is " + successResult
}
}
}
}
当我访问的路线,我得到的输出The result is Success(Sample future result)
而我预期为The result is Sample future result
。从文档here约的onSuccess:
求值类型未来[T]的它的参数,并且一旦未来已 已成功完成,提取其结果作为T类型 的值,并将其传递到内部路由。
和给出的例子是:
val route =
path("success") {
onSuccess(Future { "Ok" }) { extraction =>
complete(extraction)
}
}
所以我要去哪里错了?
我完全忘了问回报的未来!我的错! – codingsplash