Lambda 使用CompletionStage返回结果

Lambda 使用CompletionStage返回结果,lambda,playframework-2.0,java.util.concurrent,concurrent.futures,completable-future,Lambda,Playframework 2.0,Java.util.concurrent,Concurrent.futures,Completable Future,我不熟悉框架和Java8。我正在尝试编写一个简单的web服务,它符合异步模型,并允许web服务调用快速返回,从而为异步线程留下沉重负担 我有一个非常基本的操作 public CompletionStage<Result> getPeople() { } 但这会导致编译错误 我真的很感激你的帮助;由于我对Java异步编程非常陌生,尽管阅读了大量教程,但我不清楚如何最好地使用这些教程 谢谢大家。您应该返回您的未来,但将结果转换为play.mvc.result: public Comp

我不熟悉框架和Java8。我正在尝试编写一个简单的web服务,它符合异步模型,并允许web服务调用快速返回,从而为异步线程留下沉重负担

我有一个非常基本的操作

public CompletionStage<Result> getPeople() {

}
但这会导致编译错误

我真的很感激你的帮助;由于我对Java异步编程非常陌生,尽管阅读了大量教程,但我不清楚如何最好地使用这些教程


谢谢大家。

您应该返回您的未来,但将结果转换为play.mvc.result:

public CompletionStage<Result> getPeople() {
    return dbService.getPeople().thenApply(peopleList -> 
        ok(Json.toJson(peopleList))
    );
}
public CompletionStage getPeople(){
返回dbService.getPeople()。然后应用(peopleList->
ok(Json.toJson(peopleList))
);
}

您正在使用Play 2.5.x吗?使用
supplyAsync
时的编译错误是什么?
CompletionStage<List<People>> getPeople() {}
public CompletionStage<Result> getPeople() {
  CompletableFuture.completedFuture(
    ok(Json.toJson(dbservice.getPeople().get())));
}
return CompletableFuture.supplyAsync(() -> {
    return dbService.getPeople();
    }).thenApply(i -> { ok(Json.toJson(i.get())); } );
public CompletionStage<Result> getPeople() {
    return dbService.getPeople().thenApply(peopleList -> 
        ok(Json.toJson(peopleList))
    );
}