3

j'ai changé une fonction de:cadre Lecture asynchrone résultats

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 
    } 
} 

et je reçois l'erreur de compilation:

[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 

Le message d'erreur sembler comme il a quelque chose à voir avec la variance. Est-ce que quelqu'un comprend ce qui se passe?

Répondre

1

BadRequest est de retour type SimpleResult[Html]
Ok est de retour type SimpleResult[String]

Si vous faites BadRequest et Ok retourner le même type il serait alors travailler.

Essayez de faire Ok(Html("ok")) - ou de rendre réellement une page.