我得到下面的编译错误在future recover
行:future.recover在玩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(“失败”)'。这不是Java,你不能'返回thisStuff否则..返回那个...'。您从方法中返回的最后一个对象是结果...请参阅下面的答案。 –