在播放Scala的项目,我同类型控制器的内部返回一个对象:斯卡拉播放2.5谈到一个动作到结果
play.api.mvc.Action[play.api.libs.json.JsValue
然而,比赛抱怨它期待play.api.mvc.Result
。根据文档,Action是处理请求并生成结果的函数。
def myController = mySpecialFunction.asyc(prase.tolerantJson) { implicit request => {
for {
... do some stuff ...
} yield {
myFunction()
}
}
}
在这种情况下,myFunction的返回类型为play.api.mvc.Action[play.api.libs.json.JsValue
。
我想返回的结果,我不知道如何正确地调用这个函数
典型地,一个动作是你定义为在控制器的顶层(多个)功能。 Play将调用传递请求的动作并期待您返回结果。为什么你有一个变量'myController'?通常情况下,你会有一个代表你的控制器的类,然后是这个类中代表这些操作的一些方法。如果你想让代码保持原样,你就必须将这个请求应用到'myFunction'上,但正如我所说的,这看起来很奇怪。 – rethab
如果你可以显示'myFunction'在高级别做什么,可以帮助你更多。正如你自己所说的那样,你的行动的设计可能并非如此。另外,请注意'Action.async'需要你返回'Future [Result]'而不仅仅是'Result'。 – Nio