Java CompletableFuture:thenCompose (3)

Java CompletableFuture:thenCompose (3)

    private void seq() throws ExecutionException, InterruptedException {
        CompletableFuture<String> f1 = CompletableFuture.supplyAsync(new Supplier<String>() {
            @Override
            public String get() {
                try {
                    TimeUnit.SECONDS.sleep(3);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

                return "2018";
            }
        });

        CompletableFuture<Integer> f2 = f1.thenCompose(new Function<String, CompletableFuture<Integer>>() {
            @Override
            public CompletableFuture<Integer> apply(String s) {
                return CompletableFuture.supplyAsync(new Supplier<Integer>() {
                    @Override
                    public Integer get() {
                        return Integer.parseInt(s);
                    }
                });
            }
        });

        f2.whenCompleteAsync(new BiConsumer<Integer, Throwable>() {
            @Override
            public void accept(Integer integer, Throwable throwable) {
                System.out.println(integer);
            }
        });
    }

输出:

06-12 19:16:03.551 13095-13134/zhangphil.test I/System.out: 2018

猜你喜欢

转载自blog.csdn.net/zhangphil/article/details/80669895