相关疑难解决方法(0)

是否还有针对CompletableFuture的.thenCompose(),它也会异常执行?

我想执行CompletableFuture一次又一次的CompletableFuture完成,无论第一个是否异常完成(.thenCompose()仅在执行正常完成时运行).

例如:

CompletableFuture.supplyAsync(() -> 1L)
    .whenComplete((v, e) -> CompletableFuture.runAsync(() -> { 
        try {
            Thread.sleep(1000);
            System.out.println("HERE");
        } catch(InterruptedException exc) {
            return;
        }
    }))
    .whenComplete((v, e) -> System.out.println("ALL DONE"));
Run Code Online (Sandbox Code Playgroud)

这打印

ALL DONE
HERE
Run Code Online (Sandbox Code Playgroud)

我希望它是

HERE
ALL DONE
Run Code Online (Sandbox Code Playgroud)

优选地,不将第二个嵌套在第一个whenComplete()内部.

请注意,我不关心返回的结果/异常.

java concurrency java.util.concurrent

8
推荐指数
1
解决办法
3399
查看次数

标签 统计

concurrency ×1

java ×1

java.util.concurrent ×1