Рассмотрим следующий код:извлекая будущее в Акко 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:
Оценивает свой параметр типа Future [T], и как только будущее имеет был успешно завершен, извлекает его результат в виде значения типа Т и передает его к внутреннему маршруту ,
и пример, приведенный в:
val route =
path("success") {
onSuccess(Future { "Ok" }) { extraction =>
complete(extraction)
}
}
Итак, где я буду неправильно?
Я совершенно забыл, что спросить возвращает будущее! Виноват! – codingsplash