Nit*_*mer 5 java asynchronous synchronous playframework
在我的视图函数中,我可以根据发布/获取数据是否有效返回a Result或a CompletionStage<Result>:
if (data.hasErrors()) {
return badRequest(myview.render(data));
} else {
return CompletableFuture.supplyAsync(() -> calculate(data)
.thenApply(result -> ok("Got result: " + result.toString()));
}
Run Code Online (Sandbox Code Playgroud)
问题是我无法让view函数返回这两种类型,因此返回异步版本并以某种方式将badRequest(或其他任何常见响应play.mvc.Results)包装在a中似乎合乎逻辑CompletableFuture。
我可以做类似的事情:
return CompletableFuture.supplyAsync(() -> "")
.thenApply(result -> badRequest(myview.render(data)));
Run Code Online (Sandbox Code Playgroud)
但我希望有一个更优雅的解决方案。
有什么事吗
我正在使用播放版本2.5.4。