/ / Projet Framework Scala: ajouter des ints à une Seq et la renvoyer - scala, playframework

Projet Scala Framework Play: ajouter des entiers à une séquence et la renvoyer - Scala, Playframework

Comment est-il possible d'itérer sur une Future[Seq[]] et ajouter Int valeurs à un Seq et retournez ceci Seq?

Mon code ressemble à ceci:

def createCopyOfProcessTemplate(processTemplateId: Int): Action[AnyContent] = Action.async {
processTemplateDTO.createCopyOfProcessTemplate(processTemplateId).map { process =>
processTemplateDTO.getProcessStepTemplates(processTemplateId).map { steps =>
steps.foreach(processStep =>
processTemplateDTO.createCopyOfStepTemplates(processTemplateId, process.get.id.get, processStep))
}

// Fetch all Steps which belongs to this Template
val processSteps: Future[Seq[ProcessStepTemplatesModel]] = processTemplateDTO.getProcessStepTemplates(processTemplateId)

val stepIds:Seq[Int]=Seq()

processSteps.map(
steps => steps.foreach(
step => stepIds:+step.id
)
)

Ok(Json.obj("process" -> process, "steps" -> stepIds))
}
}

En raison de l'asynchronicité, je pense que le Seq est vide. Comment puis-je résoudre ça?

Réponses:

3 pour la réponse № 1

Vous pouvez adopter une approche différente:

Action.async {
...
processSteps.map(_.map(_.id))
.map(ids => Ok(Json.obj("process" -> process, "steps" -> ids)))
}