模块  java.base
软件包  java.util.concurrent

Interface CompletionStage<T>

  • 所有已知实现类:
    CompletableFuture

    public interface CompletionStage<T>
    可能是异步计算的阶段,在另一个CompletionStage完成时执行操作或计算值。 阶段在其计算终止时完成,但这又可以触发其他依赖阶段。 此接口中定义的功能仅使用几种基本形式,这些形式扩展为更大的方法集以捕获一系列使用方式:
    • 由stage执行的计算可以表示为Function,Consumer或Runnable(使用名称分别包括applyacceptrun的方法 ),具体取决于它是否需要参数和/或产生结果。 例如:
         stage.thenApply(x -> square(x)) .thenAccept(x -> System.out.print(x)) .thenRun(() -> System.out.println()); 
      另一种形式( 组合 )允许从返回完成阶段的函数构造计算管道。

      阶段计算的任何参数都是触发阶段计算的结果。

    • 一个阶段的执行可以通过完成单个阶段或两个阶段或两个阶段中的任何一个来触发。 在一个单级的依赖关系使用的是带有前缀方法然后配置。 这些通过两个阶段的结束为契机可以结合自己的成绩和效果,使用相应的命名方法。 由两个阶段中的任何一个触发的那些都不能保证哪个结果或效果用于依赖阶段的计算。
    • 各阶段之间的依赖关系控制计算的触发,但不保证任何特定的排序。 另外,新阶段计算的执行可以以三种方式中的任何一种来安排:默认执行,默认异步执行(使用具有后台异步的方法,使用阶段的默认异步执行工具)或自定义(通过提供的Executor )。 默认和异步模式的执行属性由CompletionStage实现指定,而不是此接口。 具有显式Executor参数的方法可能具有任意执行属性,甚至可能不支持并发执行,但是以适应异步的方式进行处理。
    • 两种方法形式( handlewhenComplete )支持无条件计算,无论触发阶段是正常完成还是异常完成。 方法exceptionally仅在触发阶段异常完成时才支持计算,计算替换结果,类似于java catch关键字。 在所有其他情况下,如果一个阶段的计算突然以(未经检查的)异常或错误终止,那么所有需要完成的依赖阶段也会异常完成,其中CompletionException将异常作为其原因。 如果一个阶段是依赖于两个两个阶段,都非常完整,那么CompletionException可以对应于这些例外的任何一个。 如果一个阶段依赖于另外两个阶段中的任何一个阶段,并且只有一个阶段异常完成,则不保证依赖阶段是正常完成还是异常完成。 在方法whenComplete的情况下,当提供的操作本身遇到异常时,该阶段异常地完成此异常,除非源阶段也异常完成,在这种情况下,源阶段的异常完成被赋予优先级并传播到依赖阶段。

    所有方法都遵循上述触发,执行和异常完成规范(在各个方法规范中不再重复)。 此外,虽然用于传递完成结果的参数(即,对于类型为T参数)接受它们的方法可能为null,但为任何其他参数传递空值将导致抛出NullPointerException

    方法表单handle是创建延续阶段的最通用方法,无条件地执行计算,该计算既给出了触发CompletionStage的结果和异常(如果有的话),又计算了任意结果。 方法whenComplete类似,但保留触发阶段的结果而不是计算新的结果。 因为阶段的正常结果可能是null ,所以两种方法都应该具有如下结构的计算:

      (result, exception) -> { if (exception == null) { // triggering stage completed normally } else { // triggering stage completed exceptionally } } 

    此接口不定义最初创建,强制完成正常或异常,探测完成状态或结果,或等待阶段完成的方法。 CompletionStage的实现可以酌情提供实现此类效果的方法。 方法toCompletableFuture()通过提供公共转换类型来实现该接口的不同实现之间的互操作性。

    从以下版本开始:
    1.8
    • 方法详细信息

      • thenApply

        <U> CompletionStage<U> thenApply​(Function<? super T,​? extends U> fn)
        返回一个新的CompletionStage,当该阶段正常完成时,将使用此阶段的结果作为所提供函数的参数执行。

        该方法类似于Optional.mapStream.map

        有关特殊完成的规则,请参阅CompletionStage文档。

        参数类型
        U - 函数的返回类型
        参数
        fn - 用于计算返回的CompletionStage值的函数
        结果
        新的CompletionStage
      • thenApplyAsync

        <U> CompletionStage<U> thenApplyAsync​(Function<? super T,​? extends U> fn)
        返回一个新的CompletionStage,当该阶段正常完成时,使用此阶段的默认异步执行工具执行,该阶段的结果作为所提供函数的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数类型
        U - 函数的返回类型
        参数
        fn - 用于计算返回的CompletionStage值的函数
        结果
        新的CompletionStage
      • thenApplyAsync

        <U> CompletionStage<U> thenApplyAsync​(Function<? super T,​? extends U> fn,
                                              Executor executor)
        返回一个新的CompletionStage,当这个阶段正常完成时,使用提供的Executor执行,该阶段的结果作为所提供函数的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数类型
        U - 函数的返回类型
        参数
        fn - 用于计算返回的CompletionStage值的函数
        executor - 用于异步执行的执行程序
        结果
        新的CompletionStage
      • thenAccept

        CompletionStage<Void> thenAccept​(Consumer<? super T> action)
        返回一个新的CompletionStage,当此阶段正常完成时,将使用此阶段的结果作为所提供操作的参数执行。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数
        action - 完成返回的CompletionStage之前要执行的操作
        结果
        新的CompletionStage
      • thenAcceptAsync

        CompletionStage<Void> thenAcceptAsync​(Consumer<? super T> action)
        返回一个新的CompletionStage,当该阶段正常完成时,使用此阶段的默认异步执行工具执行,该阶段的结果作为所提供操作的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数
        action - 完成返回的CompletionStage之前要执行的操作
        结果
        新的CompletionStage
      • thenAcceptAsync

        CompletionStage<Void> thenAcceptAsync​(Consumer<? super T> action,
                                              Executor executor)
        返回一个新的CompletionStage,当这个阶段正常完成时,使用提供的Executor执行,该阶段的结果作为提供的操作的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数
        action - 完成返回的CompletionStage之前要执行的操作
        executor - 用于异步执行的执行程序
        结果
        新的CompletionStage
      • thenRun

        CompletionStage<Void> thenRun​(Runnable action)
        返回一个新的CompletionStage,当此阶段正常完成时,执行给定的操作。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数
        action - 完成返回的CompletionStage之前要执行的操作
        结果
        新的CompletionStage
      • thenRunAsync

        CompletionStage<Void> thenRunAsync​(Runnable action)
        返回一个新的CompletionStage,当此阶段正常完成时,使用此阶段的默认异步执行工具执行给定的操作。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数
        action - 完成返回的CompletionStage之前要执行的操作
        结果
        新的CompletionStage
      • thenRunAsync

        CompletionStage<Void> thenRunAsync​(Runnable action,
                                           Executor executor)
        返回一个新的CompletionStage,当此阶段正常完成时,使用提供的Executor执行给定的操作。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数
        action - 完成返回的CompletionStage之前要执行的操作
        executor - 用于异步执行的执行程序
        结果
        新的CompletionStage
      • thenCombine

        <U,​V> CompletionStage<V> thenCombine​(CompletionStage<? extends U> other,
                                                   BiFunction<? super T,​? super U,​? extends V> fn)
        返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,执行两个结果作为所提供函数的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数类型
        U - 其他CompletionStage结果的类型
        V - 函数的返回类型
        参数
        other - 另一个CompletionStage
        fn - 用于计算返回的CompletionStage值的函数
        结果
        新的CompletionStage
      • thenCombineAsync

        <U,​V> CompletionStage<V> thenCombineAsync​(CompletionStage<? extends U> other,
                                                        BiFunction<? super T,​? super U,​? extends V> fn)
        返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用这个阶段的默认异步执行工具执行,其中两个结果作为所提供函数的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数类型
        U - 其他CompletionStage结果的类型
        V - 函数的返回类型
        参数
        other - 另一个CompletionStage
        fn - 用于计算返回的CompletionStage值的函数
        结果
        新的CompletionStage
      • thenCombineAsync

        <U,​V> CompletionStage<V> thenCombineAsync​(CompletionStage<? extends U> other,
                                                        BiFunction<? super T,​? super U,​? extends V> fn,
                                                        Executor executor)
        返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用提供的执行器执行,两个结果作为提供的函数的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数类型
        U - 其他CompletionStage结果的类型
        V - 函数的返回类型
        参数
        other - 另一个CompletionStage
        fn - 用于计算返回的CompletionStage值的函数
        executor - 用于异步执行的执行程序
        结果
        新的CompletionStage
      • thenAcceptBoth

        <U> CompletionStage<Void> thenAcceptBoth​(CompletionStage<? extends U> other,
                                                 BiConsumer<? super T,​? super U> action)
        返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,将执行两个结果作为提供的操作的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数类型
        U - 其他CompletionStage结果的类型
        参数
        other - 另一个CompletionStage
        action - 完成返回的CompletionStage之前要执行的操作
        结果
        新的CompletionStage
      • thenAcceptBothAsync

        <U> CompletionStage<Void> thenAcceptBothAsync​(CompletionStage<? extends U> other,
                                                      BiConsumer<? super T,​? super U> action)
        返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用这个阶段的默认异步执行工具执行,其中两个结果作为提供的操作的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数类型
        U - 其他CompletionStage结果的类型
        参数
        other - 另一个CompletionStage
        action - 完成返回的CompletionStage之前要执行的操作
        结果
        新的CompletionStage
      • thenAcceptBothAsync

        <U> CompletionStage<Void> thenAcceptBothAsync​(CompletionStage<? extends U> other,
                                                      BiConsumer<? super T,​? super U> action,
                                                      Executor executor)
        返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用提供的执行程序执行,其中两个结果作为提供的操作的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数类型
        U - 其他CompletionStage结果的类型
        参数
        other - 另一个CompletionStage
        action - 完成返回的CompletionStage之前要执行的操作
        executor - 用于异步执行的执行程序
        结果
        新的CompletionStage
      • runAfterBoth

        CompletionStage<Void> runAfterBoth​(CompletionStage<?> other,
                                           Runnable action)
        返回一个新的CompletionStage,当此和另一个给定阶段都正常完成时,执行给定的操作。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数
        other - 另一个CompletionStage
        action - 完成返回的CompletionStage之前要执行的操作
        结果
        新的CompletionStage
      • runAfterBothAsync

        CompletionStage<Void> runAfterBothAsync​(CompletionStage<?> other,
                                                Runnable action)
        返回一个新的CompletionStage,当此和另一个给定阶段都正常完成时,使用此阶段的默认异步执行工具执行给定的操作。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数
        other - 另一个CompletionStage
        action - 完成返回的CompletionStage之前要执行的操作
        结果
        新的CompletionStage
      • runAfterBothAsync

        CompletionStage<Void> runAfterBothAsync​(CompletionStage<?> other,
                                                Runnable action,
                                                Executor executor)
        返回一个新的CompletionStage,当此和另一个给定阶段都正常完成时,使用提供的执行程序执行给定的操作。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数
        other - 另一个CompletionStage
        action - 完成返回的CompletionStage之前要执行的操作
        executor - 用于异步执行的执行程序
        结果
        新的CompletionStage
      • applyToEither

        <U> CompletionStage<U> applyToEither​(CompletionStage<? extends T> other,
                                             Function<? super T,​U> fn)
        返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,将执行相应的结果作为所提供函数的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数类型
        U - 函数的返回类型
        参数
        other - 另一个CompletionStage
        fn - 用于计算返回的CompletionStage值的函数
        结果
        新的CompletionStage
      • applyToEitherAsync

        <U> CompletionStage<U> applyToEitherAsync​(CompletionStage<? extends T> other,
                                                  Function<? super T,​U> fn)
        返回一个新的CompletionStage,当该阶段或其他给定阶段正常完成时,使用此阶段的默认异步执行工具执行,并将相应的结果作为所提供函数的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数类型
        U - 函数的返回类型
        参数
        other - 另一个CompletionStage
        fn - 用于计算返回的CompletionStage值的函数
        结果
        新的CompletionStage
      • applyToEitherAsync

        <U> CompletionStage<U> applyToEitherAsync​(CompletionStage<? extends T> other,
                                                  Function<? super T,​U> fn,
                                                  Executor executor)
        返回一个新的CompletionStage,当这个或另一个给定阶段正常完成时,使用提供的执行程序执行,并将相应的结果作为所提供函数的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数类型
        U - 函数的返回类型
        参数
        other - 另一个CompletionStage
        fn - 用于计算返回的CompletionStage值的函数
        executor - 用于异步执行的执行程序
        结果
        新的CompletionStage
      • acceptEither

        CompletionStage<Void> acceptEither​(CompletionStage<? extends T> other,
                                           Consumer<? super T> action)
        返回一个新的CompletionStage,当该或其他给定阶段正常完成时,将执行相应的结果作为所提供操作的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数
        other - 另一个CompletionStage
        action - 完成返回的CompletionStage之前要执行的操作
        结果
        新的CompletionStage
      • acceptEitherAsync

        CompletionStage<Void> acceptEitherAsync​(CompletionStage<? extends T> other,
                                                Consumer<? super T> action)
        返回一个新的CompletionStage,当该阶段或其他给定阶段正常完成时,使用此阶段的默认异步执行工具执行,并将相应的结果作为所提供操作的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数
        other - 其他CompletionStage
        action - 完成返回的CompletionStage之前要执行的操作
        结果
        新的CompletionStage
      • acceptEitherAsync

        CompletionStage<Void> acceptEitherAsync​(CompletionStage<? extends T> other,
                                                Consumer<? super T> action,
                                                Executor executor)
        返回一个新的CompletionStage,当此或其他给定阶段正常完成时,使用提供的执行程序执行,并将相应的结果作为所提供操作的参数。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数
        other - 另一个CompletionStage
        action - 完成返回的CompletionStage之前要执行的操作
        executor - 用于异步执行的执行程序
        结果
        新的CompletionStage
      • runAfterEither

        CompletionStage<Void> runAfterEither​(CompletionStage<?> other,
                                             Runnable action)
        返回一个新的CompletionStage,当该阶段或其他给定阶段正常完成时,执行给定的操作。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数
        other - 另一个CompletionStage
        action - 完成返回的CompletionStage之前要执行的操作
        结果
        新的CompletionStage
      • runAfterEitherAsync

        CompletionStage<Void> runAfterEitherAsync​(CompletionStage<?> other,
                                                  Runnable action)
        返回一个新的CompletionStage,当该阶段或其他给定阶段正常完成时,使用此阶段的默认异步执行工具执行给定的操作。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数
        other - 另一个CompletionStage
        action - 完成返回的CompletionStage之前要执行的操作
        结果
        新的CompletionStage
      • runAfterEitherAsync

        CompletionStage<Void> runAfterEitherAsync​(CompletionStage<?> other,
                                                  Runnable action,
                                                  Executor executor)
        返回一个新的CompletionStage,当此或其他给定阶段正常完成时,使用提供的执行程序执行给定的操作。 有关特殊完成的规则,请参阅CompletionStage文档。
        参数
        other - 另一个CompletionStage
        action - 完成返回的CompletionStage之前要执行的操作
        executor - 用于异步执行的执行程序
        结果
        新的CompletionStage
      • thenCompose

        <U> CompletionStage<U> thenCompose​(Function<? super T,​? extends CompletionStage<U>> fn)
        返回一个新的CompletionStage,它完成的值与给定函数返回的CompletionStage相同。

        当此阶段正常完成时,将使用此阶段的结果作为参数调用给定函数,返回另一个CompletionStage。 当该阶段正常完成时,此方法返回的CompletionStage将以相同的值完成。

        为确保进度,所提供的功能必须安排最终完成其结果。

        该方法类似于Optional.flatMapStream.flatMap

        有关特殊完成的规则,请参阅CompletionStage文档。

        参数类型
        U - 返回的CompletionStage结果的类型
        参数
        fn - 用于计算另一个CompletionStage的函数
        结果
        新的CompletionStage
      • thenComposeAsync

        <U> CompletionStage<U> thenComposeAsync​(Function<? super T,​? extends CompletionStage<U>> fn)
        返回一个新的CompletionStage,它使用与给定函数返回的CompletionStage相同的值完成,使用此阶段的默认异步执行工具执行。

        当此阶段正常完成时,将使用此阶段的结果作为参数调用给定函数,返回另一个CompletionStage。 当该阶段正常完成时,此方法返回的CompletionStage将以相同的值完成。

        为确保进度,所提供的功能必须安排最终完成其结果。

        有关特殊完成的规则,请参阅CompletionStage文档。

        参数类型
        U - 返回的CompletionStage结果的类型
        参数
        fn - 用于计算另一个CompletionStage的函数
        结果
        新的CompletionStage
      • thenComposeAsync

        <U> CompletionStage<U> thenComposeAsync​(Function<? super T,​? extends CompletionStage<U>> fn,
                                                Executor executor)
        返回一个新的CompletionStage,它使用与给定函数返回的CompletionStage相同的值完成,使用提供的Executor执行。

        当此阶段正常完成时,将使用此阶段的结果作为参数调用给定函数,返回另一个CompletionStage。 当该阶段正常完成时,此方法返回的CompletionStage将以相同的值完成。

        为确保进度,所提供的功能必须安排最终完成其结果。

        有关特殊完成的规则,请参阅CompletionStage文档。

        参数类型
        U - 返回的CompletionStage结果的类型
        参数
        fn - 用于计算另一个CompletionStage的函数
        executor - 用于异步执行的执行程序
        结果
        新的CompletionStage
      • handle

        <U> CompletionStage<U> handle​(BiFunction<? super T,​Throwable,​? extends U> fn)
        返回一个新的CompletionStage,当该阶段正常或异常完成时,将使用此阶段的结果和异常作为所提供函数的参数执行。

        当这个阶段完成时,调用给定函数的结果(或null如果没有)和此阶段的异常(或null如果没有)作为参数,函数的结果用于完成返回的阶段。

        参数类型
        U - 函数的返回类型
        参数
        fn - 用于计算返回的CompletionStage值的函数
        结果
        新的CompletionStage
      • handleAsync

        <U> CompletionStage<U> handleAsync​(BiFunction<? super T,​Throwable,​? extends U> fn)
        返回一个新的CompletionStage,当该阶段正常或异常完成时,使用此阶段的默认异步执行工具执行,该阶段的结果和异常作为所提供函数的参数。

        当此阶段完成时,将使用结果(或null如果没有)和此阶段的异常(或null如果没有)调用给定函数作为参数,并且函数的结果用于完成返回的阶段。

        参数类型
        U - 函数的返回类型
        参数
        fn - 用于计算返回的CompletionStage值的函数
        结果
        新的CompletionStage
      • handleAsync

        <U> CompletionStage<U> handleAsync​(BiFunction<? super T,​Throwable,​? extends U> fn,
                                           Executor executor)
        返回一个新的CompletionStage,当该阶段正常或异常完成时,使用提供的执行程序执行,该阶段的结果和异常作为所提供函数的参数。

        当此阶段完成时,将使用结果(或null如果没有)和此阶段的异常(或null如果没有)调用给定函数作为参数,并且函数的结果用于完成返回的阶段。

        参数类型
        U - 函数的返回类型
        参数
        fn - 用于计算返回的CompletionStage值的函数
        executor - 用于异步执行的执行程序
        结果
        新的CompletionStage
      • whenComplete

        CompletionStage<T> whenComplete​(BiConsumer<? super T,​? super Throwable> action)
        返回与此阶段具有相同结果或异常的新CompletionStage,该阶段在此阶段完成时执行给定操作。

        当此阶段完成时,将使用结果(或null如果没有)和此阶段的异常(或null如果没有)作为参数调用给定的操作。 操作返回时,返回的阶段完成。

        与方法handle不同,此方法不是为翻译完成结果而设计的,因此提供的操作不应抛出异常。 但是,如果是这样,则适用以下规则:如果此阶段正常完成但提供的操作引发异常,则返回的阶段将异常完成,并提供操作的异常。 或者,如果此阶段异常完成且提供的操作抛出异常,则返回的阶段将异常完成此阶段的异常。

        参数
        action - 要执行的操作
        结果
        新的CompletionStage
      • whenCompleteAsync

        CompletionStage<T> whenCompleteAsync​(BiConsumer<? super T,​? super Throwable> action)
        返回一个新的CompletionStage,其结果或异常与此阶段相同,在此阶段完成时使用此阶段的默认异步执行工具执行给定操作。

        当此阶段完成时,将使用结果(或null如果没有)和此阶段的异常(或null如果没有)调用给定的操作作为参数。 操作返回时,返回的阶段完成。

        与方法handleAsync不同,此方法不是为翻译完成结果而设计的,因此提供的操作不应抛出异常。 但是,如果是这样,则适用以下规则:如果此阶段正常完成但提供的操作引发异常,则返回的阶段将异常完成,并提供操作的异常。 或者,如果此阶段异常完成且提供的操作抛出异常,则返回的阶段将异常完成此阶段的异常。

        参数
        action - 要执行的操作
        结果
        新的CompletionStage
      • whenCompleteAsync

        CompletionStage<T> whenCompleteAsync​(BiConsumer<? super T,​? super Throwable> action,
                                             Executor executor)
        返回一个新的CompletionStage,其结果或异常与此阶段相同,在此阶段完成时使用提供的Executor执行给定的操作。

        当此阶段完成时,将使用结果(或null如果没有)和此阶段的异常(或null如果没有)调用给定的操作作为参数。 操作返回时,返回的阶段完成。

        与方法handleAsync不同,此方法不是为翻译完成结果而设计的,因此提供的操作不应抛出异常。 但是,如果是这样,则适用以下规则:如果此阶段正常完成但提供的操作引发异常,则返回的阶段将异常完成,并提供操作的异常。 或者,如果此阶段异常完成且提供的操作抛出异常,则返回的阶段将异常完成此阶段的异常。

        参数
        action - 要执行的操作
        executor - 用于异步执行的执行程序
        结果
        新的CompletionStage
      • exceptionally

        CompletionStage<T> exceptionally​(Function<Throwable,​? extends T> fn)
        返回一个新的CompletionStage,当该阶段异常完成时,将以此阶段的异常作为所提供函数的参数执行。 否则,如果此阶段正常完成,则返回的阶段也会以相同的值正常完成。
        参数
        fn - 如果此CompletionStage异常完成,则用于计算返回的CompletionStage的值的函数
        结果
        新的CompletionStage
      • toCompletableFuture

        CompletableFuture<T> toCompletableFuture()
        返回CompletableFuture保持与此阶段相同的完成属性。 如果此阶段已经是CompletableFuture,则此方法可能会返回此阶段。 否则,调用此方法可能与thenApply(x -> x)等效,但返回类型为CompletableFuture的实例。
        结果
        the CompletableFuture