Я получаю следующее сообщение об ошибке компиляции в future recover
линии:future.recover в Play для Scala не компилирует
типа несоответствия; найдено: scala.concurrent.Future [Любой] требуется: scala.concurrent.Future [play.api.mvc.Result]
Я возвращаюсь Ok()
, который является объектом Result
, так почему компилятор жалуется ?
class Test2 extends Controller {
def test2 = Action.async { request =>
val future = Future { 2 }
println(1)
future.map { result => {
println(2)
Ok("Finished OK")
}
}
future.recover { case _ => { // <-- this line throws an error
println(3)
Ok("Failed")
}
}
}
}
Нет, вы не знаете! : D Вы возвращаете значение '2' или' Ok ("Failed") '. Это не Java, вы не можете сделать 'return thisStuff else .. return that ...'. Последним объектом, который вы возвращаете из своего метода, является результат ... См. Ответ ниже. –