![](/img/trans.png)
[英]Can i use thenCombine/thenCompose on a CompletableFuture more than once?
[英]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
将使用doSomething
的Object1
结果完成。 f2
将使用doSomethingElse
匿名函数的Object2
结果完成。 但是,由于f2
取决于f1
的结果,因此您只需等待f2
的完成即可知道两个任务均已完成。
根据java docs,thenCompose:
从接口:CompletionStage复制的描述返回一个新的CompletionStage,当此阶段正常完成时,将使用此阶段作为所提供函数的参数来执行该阶段。 有关涵盖异常完成的规则,请参阅CompletionStage文档。
它返回一个新的CompletableFuture
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.