gpt4 book ai didi

java - 如何并行调用两个返回 DeferredResult<> 的方法?

转载 作者:行者123 更新时间:2023-12-02 09:31:38 29 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序和遗留代码, Controller 中有两个端点,这两个端点都返回不同对象的 DeferredResult<> ,现在我需要创建一个新端点,它基本上调用这两个方法,并在一些之后组合它们的结果过滤然后返回。

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

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

谢谢。

最佳答案

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

thenCombine() 在这里可能会很有帮助。

这是一个包含很好示例的指南 here

编辑:

这意味着将 DeferredResult 更改为 CompletableFuture 并使用以下内容:

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

对于您的两个端点。

您新创建的 REST 端点将使用 combineThen() 将它们组合起来

关于java - 如何并行调用两个返回 DeferredResult<> 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57910103/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com