gpt4 book ai didi

java CompletableFuture.thenCombine 返回 CompletableFuture 的 CompletableFuture

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:01:58 27 4
gpt4 key购买 nike

我的应用程序中有 3 种不同的方法。全部返回CompletableFuture<SomeType> .我想并行执行方法 1 和 2。完成方法 1 和 2 后,我想使用方法 1 和 2 返回值的参数触发方法 3。

代码示例:

CompletableFuture<Request> future1 = RequestConverter.Convert(requestDto);
CompletableFuture<String> future2 = tokenProvider.getAuthToken();

CompletableFuture<CompletableFuture<String>> future3 =
future1.thenCombine(future2,(request,token) ->
requestProcessor.Process(request,token));

但上面代码的问题是我得到一个 CompletableFutureCompletableFuture .我想避免这种情况并获得一个简单的 CompletableFuture<String>没有阻塞。这可能吗?

最佳答案

由于没有组合 thenCombine()thenCompose() 的方法,您可以使用thenCompose() 解包来自您的 thenCombine() 的嵌套 CompletableFuture:

CompletableFuture<CompletableFuture<String>> future3 = 
future1.thenCombine(future2, (request,token) ->
requestProcessor.Process(request,token));

CompletableFuture<String> future4 = future3.thenCompose(c -> c);

关于java CompletableFuture.thenCombine 返回 CompletableFuture 的 CompletableFuture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48164092/

27 4 0