gpt4 book ai didi

java - 我可以在 CompletableFuture 上多次使用 thenCombine/thenCompose 吗?

转载 作者:行者123 更新时间:2023-11-30 06:18:21 25 4
gpt4 key购买 nike

假设我有 CompletableFutures A、B 和 C 是可运行的。 B 依赖于 A,C 依赖于 A 和 B,我可以先做 A,然后组合 B 和 B,然后组合 A,这样 C 就可以从 A 和 B 获取值,即使 B 也依赖于 A 的值?

基本上我要问的是 - 有没有办法获得像这样的 CompletableFuture 管道:

A -- B -- C
-------^

CompletableFuture<String> A = CompletableFuture.supplyAsync(() -> return "Hello");
CompletableFuture<String> B = A.thenApplyAsync(stringA -> return stringA + "World");
B.thenCombine(A, (stringA, StringB) -> doStuffWithAAndB(stringA, stringB));

希望这是有道理的。

最佳答案

这样做完全没问题。对于如何将 CompletableFuture 组合在一起没有任何限制。

您有责任确保它们最终完成,但这不是这里的问题。

或者,您可以直接从回调访问 A,如下所示:

CompletableFuture<String> a = CompletableFuture.supplyAsync(() -> return "Hello");
CompletableFuture<String> b = a.thenApplyAsync(stringA -> return stringA + "World");
b.thenApply(stringB -> doStuffWithAAndB(a.join(), stringB));

但这确实是一个偏好问题。

关于java - 我可以在 CompletableFuture 上多次使用 thenCombine/thenCompose 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48724206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com