说我遇到如下情况:
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);
作业如何影响未来?
答案 0 :(得分:1)
你有两个不同的可完成期货。 f1
结果将Object1
doSomething
结果f2
。 Object2
将使用doSomethingElse
中匿名函数的f2
结果完成f1
。但是,由于f2
取决于with urllib.request.urlopen(url) as response:
的结果,因此您只需等待<td>...</td>
完成即可知道这两项任务都已完成。
答案 1 :(得分:0)
根据java文档,然后撰写:
从界面复制的描述:CompletionStage返回一个新的 CompletionStage,当这个阶段正常完成时,执行 将此阶段作为所提供函数的参数。见 有关例外情况的规则的CompletionStage文档 完成。
它返回一个新的CompletableFuture