Asynchronous 我如何获得一个完整的未来<;T>;从异步Http客户端请求?

Asynchronous 我如何获得一个完整的未来<;T>;从异步Http客户端请求?,asynchronous,java-8,asynchttpclient,completable-future,Asynchronous,Java 8,Asynchttpclient,Completable Future,在上,我了解了如何通过异步HTTP get请求获取未来,例如: AsyncHttpClient asyncHttpClient = new DefaultAsyncHttpClient(); Future<Response> f = asyncHttpClient .prepareGet("http://api.football-data.org/v1/soccerseasons/398") .execute(); Response r = f.get();

在上,我了解了如何通过异步HTTP get请求获取
未来
,例如:

AsyncHttpClient asyncHttpClient = new DefaultAsyncHttpClient();
Future<Response> f = asyncHttpClient
      .prepareGet("http://api.football-data.org/v1/soccerseasons/398")
      .execute();
Response r = f.get();
有没有更好的方法可以从异步Http客户端请求中获得一个完整的未来

CompletableFuture<Response> f = asyncHttpClient
     .prepareGet("http://api.football-data.org/v1/soccerseasons/398")
     .execute()
     .toCompletableFuture();
CompletableFuture f=asyncHttpClient
.prepareGet(”http://api.football-data.org/v1/soccerseasons/398")
.execute()
.toCompletableFuture();

能否在的
Readme.md
中包含一个
CompletableFuture
使用示例?我认为这很有用。@StephaneLandelle文档中说:“请注意,取消此CompletableFuture不会正确地取消正在进行的请求。我们很有可能在下一版本中返回CompletionStage。”不知道最新版本中是否有合适的CompletableFuture,哪一个也会正确地取消请求?
CompletableFuture<Response> getDataAsync(String path){
    CompletableFuture<Response> promise = new CompletableFuture<>();
    asyncHttpClient
            .prepareGet(path)
            .execute(new AsyncCompletionHandler<Response>() {
                @Override
                public Response onCompleted(Response response) throws Exception {
                    promise.complete(response);
                    return response;
                }
                @Override
                public void onThrowable(Throwable t) {
                    promise.completeExceptionally(t);
                }
            });
    return promise;
}
getDataAsync("http://api.football-data.org/v1/soccerseasons/398")
    .thenApply(r -> gson.fromJson(r.getResponseBody(), SoccerSeason.class))
    .thenAccept(System.out::println);
CompletableFuture<Response> f = asyncHttpClient
     .prepareGet("http://api.football-data.org/v1/soccerseasons/398")
     .execute()
     .toCompletableFuture();