考慮下面的代碼:提取未來阿卡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