我有一个异步方法,该方法返回CompletableFuture<ClassA>
。
private CompletableFuture<ClassA> asyncA(..)
我正在公开一个公共方法,该方法必须返回基于类A的数据的CompleteableFuture<ClassB>
。此方法的调用者应该不知道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
。
是否可以执行这种操作?
答案 0 :(得分:0)
因此我们提出了以下解决方案:
return asyncA(..)
.thenApply(objectA -> {
CompletableFuture.runAsync(() -> asyncC(objectA));
return new ObjectB(objectA.getName())
})