3

我改变了一个功能从:播放框架异步结果

def submit = Action { request => 
    signupForm.bindFromRequest()(request).fold(
    // Form has errors 
    errors => BadRequest(html.signup.form(errors)), 

    // We got a valid User value, display the summary 
    user => { 
     // intensive computation involving database 
     Ok("okay") 
    } 
) 
} 

def submit = Action { request => 
    val result = Akka.future { 
    signupForm.bindFromRequest()(request).fold(
     // Form has errors 
     errors => BadRequest(html.signup.form(errors)), 

     // We got a valid User value, display the summary 
     user => { 
     // intensive computation involving database 
     Ok("okay") 
     } 
    ) 
    } 
    Async { 
    result 
    } 
} 

,我得到的编译错误:

[error] found : play.api.mvc.SimpleResult[_ >: java.lang.String with play.api.templates.Html <: java.io.Serializable] 
[error] required: play.api.mvc.SimpleResult[_1(in value result)] where type _1(in value result) >: java.lang.String with play.api.templates.Html <: java.io.Serializable 
[error] Note: java.io.Serializable >: _1, but class SimpleResult is invariant in type A. 
[error] You may wish to define A as -A instead. (SLS 4.5) 
[error]  signupForm.bindFromRequest()(request).fold(
[error]            ^
[error] one error found 

该错误消息似乎像它与差异有关。有谁知道发生了什么事?

回答

1

BadRequest如果您BadRequestOk返还相同种类那么它会工作返回类型SimpleResult[Html]
Ok将返回类型SimpleResult[String]

尝试做Ok(Html("ok")) - 或实际上呈现一个页面。