到目前为止,我一直在实现异步非阻塞 IO,CompletionStages
但我现在正在尝试构建Spring-Webflux
服务,同时尝试重用现有代码。
我有一个现有的 HttpClient ,它返回 aCompletionStage
并且作为我的逻辑的一部分,我需要执行 3 个 HTTP 调用,每个都依赖于最后一个。我知道我可以将 a 转换CompletionStage
为Mono
using Mono.fromCompetionStage
,但我想知道如何流畅地组合调用,以便我的 Rest Controller 可以返回一个表示所有操作顺序的 Mono。
我知道,如果我只是在使用,CompletionStages
我可以使用以下方法链接它们thenCompose
:
return client.firstCall()
.thenCompose(client::secondCall)
.thenCompose(client::thirdCall)
任何想法实现这一目标的最佳方法是使用Mono
. 如果答案是CompletionStage
从上面的代码中得到结果,Mono.fromCompletionStage
我觉得没什么意义,因为Spring-Weblfux
支持返回CompletionStages
.