我有一个返回 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/