我有以下功能:斯卡拉playframework在flatMap
def createProcessTemplate: Action[AnyContent] = Action.async { implicit request =>
println(request.body.asJson)
request.body.asJson.map(_.validate[ProcessTemplatesModel] match {
case JsSuccess(process, _) =>
processTemplateDTO.createProcessTemplate(process).map {
process => {
// Create process steps templates
createNewProcessStepTemplate(request, process.id.get)
// Create prerequisites
createProcessTemplatePrerequisite(request, process.id.get)
// Create postConditions
createProcessTemplatePostCondition(request, process.id.get)
processTemplateDTO.getProcessStepTemplates(process.id.get).flatMap(
steps => Ok(Json.obj("id" -> process.id, "title" -> process.title, "steps" -> steps)))
}
}
case JsError(_) =>
Future.successful(BadRequest("Process Template not create client"))
case _ => Future.successful(BadRequest("Process Template create client"))
}).getOrElse(Future.successful(BadRequest("Process Template create client")))
}
我想回到在確定聲明的步驟,但得到這個錯誤:
可能是什麼在這種情況下的問題?
感謝
'flatMap''需要一個''Future'''',但你只返回一個''Ok''。嘗試在''Future.successful''中打包到它'' – alifirat
像這樣:'processTemplateDTO.getProcessStepTemplates(process.id.get).flatMap( steps => Future.successful(Ok(Json.obj(「id」 - > process.id,「title」 - > process.title,「steps」 - > steps))))' – Felix
得到了同樣的錯誤 – Felix