考虑下面的代码,因为我找不到更好的词来问这个问题:
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()
就应该异步计算。