1

到目前为止,我一直在实现异步非阻塞 IO,CompletionStages但我现在正在尝试构建Spring-Webflux服务,同时尝试重用现有代码。

我有一个现有的 HttpClient ,它返回 aCompletionStage并且作为我的逻辑的一部分,我需要执行 3 个 HTTP 调用,每个都依赖于最后一个。我知道我可以将 a 转换CompletionStageMonousing Mono.fromCompetionStage,但我想知道如何流畅地组合调用,以便我的 Rest Controller 可以返回一个表示所有操作顺序的 Mono。

我知道,如果我只是在使用,CompletionStages我可以使用以下方法链接它们thenCompose

return client.firstCall()
             .thenCompose(client::secondCall)
             .thenCompose(client::thirdCall)  

任何想法实现这一目标的最佳方法是使用Mono. 如果答案是CompletionStage从上面的代码中得到结果,Mono.fromCompletionStage我觉得没什么意义,因为Spring-Weblfux支持返回CompletionStages.

4

0 回答 0