考虑下面的代码,因为我找不到更好的词来问这个问题:
CompletionStage<Manager> callingAsyncFunction(int developerId) {
return getManagerIdByDeveloperId(developerId)
.thenCompose(id ->
getManagerById(id, mandatoryComputationToGetManager(id)))
}
mandatoryComputationToGetManager()返回一个CompletionStage
现在我的疑问是:
我想打电话mandatoryComputationToGetManager(),在它的计算之后我想getManagerById(...)被叫。
我知道可以有一种方法,即thenCompose()先调用做mandatoryComputationToGetManager(),然后thenCompose()对先前的结果再做另一个getManagerById()。但是我想弄清楚是否有一种方法可以不用将一个thenCompose()o/p 连接到另一个,我可以一直保持到mandatoryComputationToGetManager()结果准备好。
据我了解,getManagerById()即使结果尚未准备好,上面的代码也会被调用mandatoryComputationToGetManager(),我想等待,这样一旦mandatoryComputationToGetManager()给出结果getManagerById()就应该异步计算。