簡體   English   中英

是否可以通過whenComplete(…)向CompletableFuture添加多個動作?

[英]Is it possible to add multiple actions to a CompletableFuture with whenComplete(…)?

CompletableFuture類允許添加一個動作,該動作在調用complete(...)之后將來完成時被調用。

我可以使用whenComplete(...) 添加多個BiConsumer操作以在將來完成操作時執行這些操作 ,並且在調用complete(...)方法時是否全部執行了這些操作?

是的,所有BiConsumer操作都已添加,並在調用complete(...)時以相反的添加順序執行。

演示此示例可能如下所示:

public class Application {
    public static void main(String[] args) {
        System.out.println("My tests ...");
        CompletableFuture<String> futureString = new CompletableFuture<String>();
        futureString.whenComplete((s,e)->System.out.println("one " + s));
        futureString.whenComplete((s,e)->System.out.println("two " + s));
        futureString.whenComplete((s,e)->System.out.println("three " + s));
        System.out.println("do something else; "+ futureString.isDone());
        futureString.complete("step(s)");
        System.out.println("Done " + futureString.isDone());
    }
}

運行該程序時,打印結果如下:

My tests ...
do something else; false 
three step(s)
two step(s)
one step(s)
Done true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM