当前位置: 首页 > 知识库问答 >
问题:

我们如何在保持所有结果的同时组成3个或更多可完成的期货呢

仲璞瑜
2023-03-14

我有3个服务我想连锁

CompletableFuture<String> serviceA
CompletableFuture<String> serviceB(String resultFromA)
CompletableFuture<String> serviceC(String resultFromA, String resultFromB)

如果我使用thenCompose,我似乎无法保持第一个结果

即。

serviceA.thenCompose(a -> serviceB(a))
        .thenCompose(b -> serviceC(a, b));  // a is lost

如果我使用completablefuture.allof(),我没有看到它允许链接--按顺序运行并传递结果。

我准备修改serviceB,使它返回一个对,或者某个复合对象,但是有更好的方法吗?

共有1个答案

白丁雨
2023-03-14
serviceA.thenCompose(a -> serviceB(a).thenCompose(b -> serviceC(a, b)));
 类似资料:
  • 我正在使用: Scala 2.10 游戏2.1 目前,我正在使用 类,但我愿意尝试另一个 API。 我很难将多个期货的结果组合成一个列表[(String, String)]。 以下 方法成功地将单个 Future 的结果返回到 HTML 模板: 方法执行 Web 服务 API 调用并返回 Future[play.api.libs.ws.Response]。方法 向 HTML 模板返回 List[(

  • 首先,我已经看到了所有其他关于类似的问题和答案,但我需要的是一点不同。 我需要能够在后台关闭所有正在运行的活动(它们正在运行一个线程,当我返回MainActivity时,它们仍然在运行)

  • 我想将以下顺序代码转换为与Futures的并发代码,并需要有关如何构建它的建议。 顺序: 我想下载所有通过下载方法的varargs进入的源,并将结果组合到一个Seq/List/Set中,无论如何,在一起。当一个Future失败时,假设因为服务器无法访问,它应该接受所有其他的并继续前进并返回结果unetheless。firstCompletedOf不起作用,因为我需要所有的结果,除了一个由于错误而失

  • 现在,我有三个函数:updateFieldFromCollection1()、

  • 我想有一个清单的comletablefutures我想等待。带有以下代码。 问题是,在所有的期货,其中一些可以是缓慢的,我想在到期时间后,get方法返回与所有完成的结果。有办法做到这一点吗? 多谢.

  • 问题内容: 在elasticsearch中,如果我有带有 属性的文档说,还有其他一些属性。 我需要以以下方式查询结果 基本上,我需要doc_count可用的所有组合。使用该结果,可以说 在Foo = foo1,Bar = bar1,Baz = baz1,Qux = qux1的情况下,有20个文档/记录。 粗略的方法是,在聚合内部使用聚合(在这种情况下为4次)。 应该有一些更简单的方法可以做到这一点