【发布时间】:2022-11-08 00:29:57
【问题描述】:
def update() = AuthAction.async(parse.json) { implicit request =>
val list = request.body.asInstanceOf[JsArray].value
list.foreach( mapping => {
repository.update()
}.andThen {
case Success(value) => repository.update2()
case Failure(exception) => {
BadRequest(errorResponse(Json.toJson(""), "updation failed"))
}
})
}
我有一个控制器功能,我想等待数据库回购功能( repository.update2() )完成然后发送响应,但它说“找到单位预期未来[结果]”
【问题讨论】:
-
使用
map/flatMap而不是andThen- 此外,您可能还想要Future.traverse而不是foreach -
另外,
update是否返回Future?如果没有,请不要使用AuthAction.async,而只需使用AuthAction。如果是,请确保每个代码分支中的类型一致:案例Failure不返回Future。
标签: scala playframework future