/ / Възпроизвеждане на рамков проект Scala: добавете ints към Seq и го върнете - scala, playframework

Възпроизвеждане на рамков проект Scala: добавете ints към Seq и го върнете - scala, playframework

Как е възможно да се повтори над Future[Seq[]] и добавете Int стойностите до a Seq и върнете това Seq?

Моят код изглежда така:

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

Заради асинхронността, мисля, че Seq празно е. Как мога да реша това?

Отговори:

3 за отговор № 1

Бихте могли да вземете различен подход:

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