如何并行调用 return DeferredResult<> 的两个方法?

How can I call two methods that return DeferredResult<> in parallel?

我有一个 Spring 引导应用程序和遗留代码,在控制器中有两个端点,这两个端点都是 returns DeferredResult<> 不同的对象,现在我需要创建一个新的端点基本上调用这两种方法并在一些过滤后组合它们的结果然后 return 它。

我想知道是否有一种方法可以同时调用这两种方法,然后将它们的结果合并到一个调用中,有点像您在 javascript 中使用 Promise.all?我只是不想让回调地狱或等待一个操作完成后再开始另一个操作。当然,新端点还将 return 一个 ReferredResult<>.

在这方面的任何帮助将不胜感激。

谢谢。

您可以使用 CompletableFuture 来满足在执行处理之前获得两个端点结果的要求。

thenCombine() 可以帮上忙。

这是一个带有很好示例的指南 here

编辑:

这意味着将 DeferredResult 更改为 CompletableFuture 并使用诸如 :

 CompletableFuture<String> completableFuture =
      CompletableFuture.supplyAsync(this::processRequest);

对于您的两个端点。

您新创建的 REST 端点会将它们与 combineThen()

合并