java - 将第一个 CompletableFuture 的结果传递给链上的其他 CompletableFuture

标签 java asynchronous completable-future

我有一个返回 CompletableFuture<ClassA> 的异步方法。

private CompletableFuture<ClassA> asyncA(..)

我公开了一个必须返回 CompleteableFuture<ClassB> 的公共(public)方法该方法基于 A 类的数据。此方法的调用者不应该知道 ClassA:

return asyncA(..)
       .thenApply(objectA -> return new ObjectB(objectA.getName());

到目前为止,一切都按预期进行。

现在我喜欢在有 ObjectB 结果后执行异步操作并调用 void 方法 asyncC ,我喜欢以某种方式传递它 objectA:

return asyncA(..)
       .thenApply(objectA -> return new ObjectB(objectA.getName())
       .thenRunAsync(asyncC(objectA));

但看起来像 objectA未在 thenRunAsync 中定义.

有没有办法执行这样的操作?

最佳答案

所以我们想出了这个解决方案:

return asyncA(..)
   .thenApply(objectA -> {
       CompletableFuture.runAsync(() -> asyncC(objectA));
       return new ObjectB(objectA.getName())
      })

关于java - 将第一个 CompletableFuture 的结果传递给链上的其他 CompletableFuture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56150551/

相关文章:

java - 执行依赖于其他任务的 CompletableFuture

java - 如何将 lwjgl 3.2.2 库包含到 intelliJ IDE 中?

java - 比较 java 内存堆转储 : Memory profiling for Java desktop application

c# - TaskCompletionSource.SetResult 的线程安全

javascript - Nodejs 对方法或 promise 的回调?

java - 如何控制CompletableFuture的流程?

java - CompletableFuture 链接

java - 在 map 上放置多个标记时获取 Latlng 值的无效双 "n\a"

java - 共享 SCXML 问题

javascript - 数据请求有时是异步的