繁体   English   中英

如果我在CompletableFuture上使用thenCompose并分配它,我是否有2个CompletableFuture?

[英]If I use thenCompose on a CompletableFuture and assign it do I have 2 CompletableFutures?

假设我遇到以下情况:

CompletableFuture<Object1> f1 = Class1.doSomething();
CompletableFuture<Object2> f2 = Class2.doSomethingElse(f1);
boolean b = doAnotherThing(f2);

其中Class2使用thenCompose()并以不同的对象类型返回

CompletableFuture<Object2> doSomethingElse(CompletableFuture<Object1> f) {
return f.thenCompose(s -> {...});

那我有2个期货吗? 我需要做:

CompletableFuture.allOf(f1, f2);

任务如何影响未来?

您有两个截然不同的可完成期货。 f1将使用doSomethingObject1结果完成。 f2将使用doSomethingElse匿名函数的Object2结果完成。 但是,由于f2取决于f1的结果,因此您只需等待f2的完成即可知道两个任务均已完成。

根据java docs,thenCompose:

从接口:CompletionStage复制的描述返回一个新的CompletionStage,当此阶段正常完成时,将使用此阶段作为所提供函数的参数来执行该阶段。 有关涵盖异常完成的规则​​,请参阅CompletionStage文档。

它返回一个新的CompletableFuture

http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html#thenCompose-java.util.function.Function-

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM