我有3个返回CompletionStage的函数.让我们说它们看起来像:
CompletionStage funcA();
CompletionStage funcB();
CompletionStage funcC(A a, B b);
现在我想编写返回CompletionStage< C>的fuction funcD.结果由funcC计算,params来自funcA和funcB.现在的问题是如何正确地做到这一点?
我阅读文档后的尝试看起来像这样,但我不确定它是否正确使用.问题是在AfterCombineAsync之后我收到CompletionStage< CompletionStage< C>>并且最后一行看起来像丑陋的解决方法来提取正确的结果.可以做得更好吗?
CompletionStage funcD() {
CompletionStage completionStageB = funcB();
return funcA()
.thenCombineAsync(completionStageB, (a,b) -> funcC(a,b))
.thenComposeAsync(result -> result);
}
我们假设方法的声明不能改变.