Я бы хотел асинхронно управлять запросом POST от компонента формы в Play Framework.В частности, я хотел бы использовать параметры формы в обработчике, который уже возвращает Future
.
. Я знаю, что для обработки запроса POST я должен использовать перегрузку, которая получает MessagesRequest[AnyContent]
экземпляр на входе, например:
def action = Action { implicit request: MessagesRequest[AnyContent] =>
Ok(views.html.view( ... ))
}
В любом случае, чтобы управлять будущим, я должен использовать метод Action.async
, но я не нашел никакой перегрузки этого метода, который принимает на входеэкземпляр MessagesRequest[AnyContent]
.
Я уже пытался привести обработчик к простому экземпляру Request[AnyContent]
, но в данном конкретном случае он не интегрировался с инфраструктурой платформы Play.
Из документации ясно, что под капотом Action
и Action.async
являются асинхронными по своей природе, и что Action.async
является просто вспомогательным средством, позволяющим писать код внеблокирующий способ, чего я и хотел бы достичь.
В соответствии с моим пониманием, было бы достаточно вернуть не асинхронный результат, который в любом случае был бы заключен в Future
, но этоспособ вернуть Future
, обрабатывая MessagesRequest[AnyContent]
из реализации формы Play?