にアクションを回すプレイ、私はタイプとコントローラの内部のオブジェクトを返しています:Scalaは2.5がプレイScalaのプロジェクトで結果
play.api.mvc.Action[play.api.libs.json.JsValue
しかし、プレイはそれがplay.api.mvc.Result
を期待していることを不平を言っています。ドキュメントによれば、アクションはリクエストを処理して結果を生成する関数です。
def myController = mySpecialFunction.asyc(prase.tolerantJson) { implicit request => {
for {
... do some stuff ...
} yield {
myFunction()
}
}
}
この場合、myFunctionの戻りタイプはplay.api.mvc.Action[play.api.libs.json.JsValue
です。
は私が結果を返すようにしたい、と私は正しくrequest
からFuture[Result]
に
典型的には、アクションは、コントローラ内のトップレベルの機能(複数可)として定義するものです。 Playはアクションを呼び出してリクエストを渡し、結果を返すことを期待します。なぜあなたは変数 'myController'を持っていますか?通常は、コントローラを表すクラスがあり、そのクラス内でアクションを表すメソッドがいくつかあります。コードをそのまま動作させたいのであれば、 'myFunction'にリクエストを適用する必要があります - しかし、これはむしろ奇妙に見えます。 – rethab
'myFunction'が何を高レベルで実行するかを見ればもっと助けてくれるでしょうか?あなた自身が述べているように、あなたの行動は同様に設計されていません。また、 'Action.async'は' Result'だけでなく 'Future [Result]'を返す必要があることにも注意してください。 – Nio