Most visited

Recently visited

Added in API level 24

CompletionStage

public interface CompletionStage

java.util.concurrent.CompletionStage<T>
Known Indirect Subclasses


一个可能是异步计算的阶段,在另一个CompletionStage完成时执行一个操作或计算一个值。 一个阶段在其计算结束时完成,但这可能反过来触发其他从属阶段。 在这个界面中定义的功能只需要几个基本表单,这些基本表单扩展到一组更大的方法来捕获一系列的使用方式:

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

方法形式handle是创建延续阶段的最常用方式,无条件地执行计算,同时给出触发CompletionStage的结果和异常(如果有)并计算任意结果。 方法whenComplete类似,但保留触发阶段的结果而不是计算新的结果。 因为一个阶段的正常结果可能是null ,所以这两种方法都应该具有这样的计算结构:

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

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

Summary

Public methods

abstract CompletionStage<Void> acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,执行相应的结果作为提供的动作的参数。

abstract CompletionStage<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用提供的执行程序执行,并将相应的结果作为参数提供给所提供的操作。

abstract CompletionStage<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用此阶段的默认异步执行工具执行,并将相应的结果作为所提供操作的参数。

abstract <U> CompletionStage<U> applyToEither(CompletionStage<? extends T> other, Function<? super T, U> fn)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,将执行相应的结果作为所提供函数的参数。

abstract <U> CompletionStage<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T, U> fn, Executor executor)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用提供的执行器执行,并将相应的结果作为参数提供给所提供的函数。

abstract <U> CompletionStage<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T, U> fn)

返回一个新CompletionStage,当这个或其它给定的阶段完成,通常,使用此阶段的默认异步执行设施执行时,与相应的结果作为参数传递给提供的函数。

abstract CompletionStage<T> exceptionally(Function<Throwable, ? extends T> fn)

返回一个新的CompletionStage,当该阶段异常完成时,将以该阶段的异常作为所提供函数的参数执行。

abstract <U> CompletionStage<U> handle(BiFunction<? super T, Throwable, ? extends U> fn)

返回一个新的CompletionStage,当该阶段正常或异常完成时,将以该阶段的结果和异常作为所提供函数的参数执行。

abstract <U> CompletionStage<U> handleAsync(BiFunction<? super T, Throwable, ? extends U> fn, Executor executor)

返回一个新的CompletionStage,当该阶段正常或异常完成时,使用提供的执行程序执行该阶段的结果和异常作为所提供函数的参数。

abstract <U> CompletionStage<U> handleAsync(BiFunction<? super T, Throwable, ? extends U> fn)

返回一个新的CompletionStage,当该阶段通常或异常完成时,使用该阶段的默认异步执行工具执行,此阶段的结果和异常作为所提供函数的参数。

abstract CompletionStage<Void> runAfterBoth(CompletionStage<?> other, Runnable action)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,执行给定的动作。

abstract CompletionStage<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用该阶段的默认异步执行工具执行给定的操作。

abstract CompletionStage<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用提供的执行程序执行给定的动作。

abstract CompletionStage<Void> runAfterEither(CompletionStage<?> other, Runnable action)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,执行给定的动作。

abstract CompletionStage<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用该阶段的默认异步执行工具执行给定的操作。

abstract CompletionStage<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用提供的执行程序执行给定的操作。

abstract CompletionStage<Void> thenAccept(Consumer<? super T> action)

返回一个新的CompletionStage,当该阶段正常完成时,将以该阶段的结果作为所提供操作的参数执行。

abstract CompletionStage<Void> thenAcceptAsync(Consumer<? super T> action, Executor executor)

返回一个新的CompletionStage,当该阶段正常完成时,使用提供的Executor执行该阶段的结果作为所提供操作的参数。

abstract CompletionStage<Void> thenAcceptAsync(Consumer<? super T> action)

返回一个新的CompletionStage,当该阶段正常完成时,使用此阶段的默认异步执行工具执行该阶段的结果作为所提供操作的参数。

abstract <U> CompletionStage<Void> thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,以两个结果作为参数执行所提供的动作。

abstract <U> CompletionStage<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action, Executor executor)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用提供的执行程序执行,并将两个结果作为所提供操作的参数。

abstract <U> CompletionStage<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用该阶段的默认异步执行工具执行,并将两个结果作为所提供操作的参数。

abstract <U> CompletionStage<U> thenApply(Function<? super T, ? extends U> fn)

返回一个新的CompletionStage,当该阶段正常完成时,该阶段的结果作为所提供函数的参数执行。

abstract <U> CompletionStage<U> thenApplyAsync(Function<? super T, ? extends U> fn)

返回一个新的CompletionStage,当该阶段正常完成时,使用该阶段的默认异步执行工具执行该阶段的结果作为所提供函数的参数。

abstract <U> CompletionStage<U> thenApplyAsync(Function<? super T, ? extends U> fn, Executor executor)

返回一个新的CompletionStage,当该阶段正常完成时,使用提供的Executor执行该阶段的结果作为所提供函数的参数。

abstract <U, V> CompletionStage<V> thenCombine(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,以两个结果作为所提供函数的参数执行。

abstract <U, V> CompletionStage<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,将使用该阶段的默认异步执行工具执行,并将两个结果作为所提供函数的参数。

abstract <U, V> CompletionStage<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn, Executor executor)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用提供的执行器执行,并将两个结果作为所提供函数的参数。

abstract <U> CompletionStage<U> thenCompose(Function<? super T, ? extends CompletionStage<U>> fn)

返回一个新的CompletionStage,其完成的值与给定函数返回的CompletionStage的值相同。

abstract <U> CompletionStage<U> thenComposeAsync(Function<? super T, ? extends CompletionStage<U>> fn, Executor executor)

返回一个新的CompletionStage,它使用与提供的Executor执行的给定函数返回的CompletionStage相同的值完成。

abstract <U> CompletionStage<U> thenComposeAsync(Function<? super T, ? extends CompletionStage<U>> fn)

返回一个新的CompletionStage,它使用与由给定函数返回的CompletionStage相同的值完成,并使用该阶段的默认异步执行工具执行。

abstract CompletionStage<Void> thenRun(Runnable action)

返回一个新的CompletionStage,当该阶段正常完成时,执行给定的动作。

abstract CompletionStage<Void> thenRunAsync(Runnable action, Executor executor)

返回一个新的CompletionStage,当该阶段正常完成时,使用提供的Executor执行给定的操作。

abstract CompletionStage<Void> thenRunAsync(Runnable action)

返回一个新的CompletionStage,当该阶段正常完成时,使用该阶段的默认异步执行工具执行给定的操作。

abstract CompletableFuture<T> toCompletableFuture()

返回一个 CompletableFuture保持与此阶段相同的完成属性。

abstract CompletionStage<T> whenComplete(BiConsumer<? super T, ? super Throwable> action)

返回与此阶段具有相同结果或例外的新CompletionStage,该阶段在此阶段完成时执行给定操作。

abstract CompletionStage<T> whenCompleteAsync(BiConsumer<? super T, ? super Throwable> action)

返回与此阶段具有相同结果或例外的新CompletionStage,该阶段在此阶段完成时使用此阶段的默认异步执行工具执行给定操作。

abstract CompletionStage<T> whenCompleteAsync(BiConsumer<? super T, ? super Throwable> action, Executor executor)

返回与此阶段具有相同结果或例外的新CompletionStage,该阶段在此阶段完成时使用提供的Executor执行给定操作。

Public methods

acceptEither

Added in API level 24
CompletionStage<Void> acceptEither (CompletionStage<? extends T> other, 
                Consumer<? super T> action)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,执行相应的结果作为提供的动作的参数。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
action Consumer: the action to perform before completing the returned CompletionStage
Returns
CompletionStage<Void> the new CompletionStage

acceptEitherAsync

Added in API level 24
CompletionStage<Void> acceptEitherAsync (CompletionStage<? extends T> other, 
                Consumer<? super T> action, 
                Executor executor)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用提供的执行程序执行,并将相应的结果作为参数提供给所提供的操作。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
action Consumer: the action to perform before completing the returned CompletionStage
executor Executor: the executor to use for asynchronous execution
Returns
CompletionStage<Void> the new CompletionStage

acceptEitherAsync

Added in API level 24
CompletionStage<Void> acceptEitherAsync (CompletionStage<? extends T> other, 
                Consumer<? super T> action)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用此阶段的默认异步执行工具执行,并将相应的结果作为所提供操作的参数。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
action Consumer: the action to perform before completing the returned CompletionStage
Returns
CompletionStage<Void> the new CompletionStage

applyToEither

Added in API level 24
CompletionStage<U> applyToEither (CompletionStage<? extends T> other, 
                Function<? super T, U> fn)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,将执行相应的结果作为所提供函数的参数。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
fn Function: the function to use to compute the value of the returned CompletionStage
Returns
CompletionStage<U> the new CompletionStage

applyToEitherAsync

Added in API level 24
CompletionStage<U> applyToEitherAsync (CompletionStage<? extends T> other, 
                Function<? super T, U> fn, 
                Executor executor)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用提供的执行器执行,并将相应的结果作为参数提供给所提供的函数。 关于异常完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
fn Function: the function to use to compute the value of the returned CompletionStage
executor Executor: the executor to use for asynchronous execution
Returns
CompletionStage<U> the new CompletionStage

applyToEitherAsync

Added in API level 24
CompletionStage<U> applyToEitherAsync (CompletionStage<? extends T> other, 
                Function<? super T, U> fn)

返回一个新CompletionStage,当这个或其它给定的阶段完成,通常,使用此阶段的默认异步执行设施执行时,与相应的结果作为参数传递给提供的函数。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
fn Function: the function to use to compute the value of the returned CompletionStage
Returns
CompletionStage<U> the new CompletionStage

exceptionally

Added in API level 24
CompletionStage<T> exceptionally (Function<Throwable, ? extends T> fn)

返回一个新的CompletionStage,当该阶段异常完成时,将以该阶段的异常作为所提供函数的参数执行。 否则,如果这个阶段正常完成,那么返回阶段也会以相同的值正常完成。

Parameters
fn Function: the function to use to compute the value of the returned CompletionStage if this CompletionStage completed exceptionally
Returns
CompletionStage<T> the new CompletionStage

handle

Added in API level 24
CompletionStage<U> handle (BiFunction<? super T, Throwable, ? extends U> fn)

返回一个新的CompletionStage,当该阶段正常或异常完成时,将以该阶段的结果和异常作为所提供函数的参数执行。

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

Parameters
fn BiFunction: the function to use to compute the value of the returned CompletionStage
Returns
CompletionStage<U> the new CompletionStage

handleAsync

Added in API level 24
CompletionStage<U> handleAsync (BiFunction<? super T, Throwable, ? extends U> fn, 
                Executor executor)

返回一个新的CompletionStage,当该阶段正常或异常完成时,使用提供的执行程序执行该阶段的结果和异常作为所提供函数的参数。

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

Parameters
fn BiFunction: the function to use to compute the value of the returned CompletionStage
executor Executor: the executor to use for asynchronous execution
Returns
CompletionStage<U> the new CompletionStage

handleAsync

Added in API level 24
CompletionStage<U> handleAsync (BiFunction<? super T, Throwable, ? extends U> fn)

返回一个新的CompletionStage,当该阶段通常或异常完成时,使用该阶段的默认异步执行工具执行,此阶段的结果和异常作为所提供函数的参数。

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

Parameters
fn BiFunction: the function to use to compute the value of the returned CompletionStage
Returns
CompletionStage<U> the new CompletionStage

runAfterBoth

Added in API level 24
CompletionStage<Void> runAfterBoth (CompletionStage<?> other, 
                Runnable action)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,执行给定的动作。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
action Runnable: the action to perform before completing the returned CompletionStage
Returns
CompletionStage<Void> the new CompletionStage

runAfterBothAsync

Added in API level 24
CompletionStage<Void> runAfterBothAsync (CompletionStage<?> other, 
                Runnable action)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用该阶段的默认异步执行工具执行给定的操作。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
action Runnable: the action to perform before completing the returned CompletionStage
Returns
CompletionStage<Void> the new CompletionStage

runAfterBothAsync

Added in API level 24
CompletionStage<Void> runAfterBothAsync (CompletionStage<?> other, 
                Runnable action, 
                Executor executor)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用提供的执行程序执行给定的动作。 有关特殊完成规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
action Runnable: the action to perform before completing the returned CompletionStage
executor Executor: the executor to use for asynchronous execution
Returns
CompletionStage<Void> the new CompletionStage

runAfterEither

Added in API level 24
CompletionStage<Void> runAfterEither (CompletionStage<?> other, 
                Runnable action)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,执行给定的动作。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
action Runnable: the action to perform before completing the returned CompletionStage
Returns
CompletionStage<Void> the new CompletionStage

runAfterEitherAsync

Added in API level 24
CompletionStage<Void> runAfterEitherAsync (CompletionStage<?> other, 
                Runnable action)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用该阶段的默认异步执行工具执行给定的操作。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
action Runnable: the action to perform before completing the returned CompletionStage
Returns
CompletionStage<Void> the new CompletionStage

runAfterEitherAsync

Added in API level 24
CompletionStage<Void> runAfterEitherAsync (CompletionStage<?> other, 
                Runnable action, 
                Executor executor)

返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用提供的执行程序执行给定的操作。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
action Runnable: the action to perform before completing the returned CompletionStage
executor Executor: the executor to use for asynchronous execution
Returns
CompletionStage<Void> the new CompletionStage

thenAccept

Added in API level 24
CompletionStage<Void> thenAccept (Consumer<? super T> action)

返回一个新的CompletionStage,当该阶段正常完成时,将以该阶段的结果作为所提供操作的参数执行。 关于异常完成的规则,请参阅CompletionStage文档。

Parameters
action Consumer: the action to perform before completing the returned CompletionStage
Returns
CompletionStage<Void> the new CompletionStage

thenAcceptAsync

Added in API level 24
CompletionStage<Void> thenAcceptAsync (Consumer<? super T> action, 
                Executor executor)

返回一个新的CompletionStage,当该阶段正常完成时,使用提供的Executor执行该阶段的结果作为所提供操作的参数。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
action Consumer: the action to perform before completing the returned CompletionStage
executor Executor: the executor to use for asynchronous execution
Returns
CompletionStage<Void> the new CompletionStage

thenAcceptAsync

Added in API level 24
CompletionStage<Void> thenAcceptAsync (Consumer<? super T> action)

返回一个新的CompletionStage,当该阶段正常完成时,使用此阶段的默认异步执行工具执行该阶段的结果作为所提供操作的参数。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
action Consumer: the action to perform before completing the returned CompletionStage
Returns
CompletionStage<Void> the new CompletionStage

thenAcceptBoth

Added in API level 24
CompletionStage<Void> thenAcceptBoth (CompletionStage<? extends U> other, 
                BiConsumer<? super T, ? super U> action)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,以两个结果作为参数执行所提供的动作。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
action BiConsumer: the action to perform before completing the returned CompletionStage
Returns
CompletionStage<Void> the new CompletionStage

thenAcceptBothAsync

Added in API level 24
CompletionStage<Void> thenAcceptBothAsync (CompletionStage<? extends U> other, 
                BiConsumer<? super T, ? super U> action, 
                Executor executor)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用提供的执行程序执行,并将两个结果作为所提供操作的参数。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
action BiConsumer: the action to perform before completing the returned CompletionStage
executor Executor: the executor to use for asynchronous execution
Returns
CompletionStage<Void> the new CompletionStage

thenAcceptBothAsync

Added in API level 24
CompletionStage<Void> thenAcceptBothAsync (CompletionStage<? extends U> other, 
                BiConsumer<? super T, ? super U> action)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用该阶段的默认异步执行工具执行,并将两个结果作为所提供操作的参数。 有关特殊完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
action BiConsumer: the action to perform before completing the returned CompletionStage
Returns
CompletionStage<Void> the new CompletionStage

thenApply

Added in API level 24
CompletionStage<U> thenApply (Function<? super T, ? extends U> fn)

返回一个新的CompletionStage,当该阶段正常完成时,该阶段的结果作为所提供函数的参数执行。

该方法类似于 Optional.mapStream.map

关于异常完成的规则,请参阅 CompletionStage文档。

Parameters
fn Function: the function to use to compute the value of the returned CompletionStage
Returns
CompletionStage<U> the new CompletionStage

thenApplyAsync

Added in API level 24
CompletionStage<U> thenApplyAsync (Function<? super T, ? extends U> fn)

返回一个新的CompletionStage,当该阶段正常完成时,使用该阶段的默认异步执行工具执行该阶段的结果作为所提供函数的参数。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
fn Function: the function to use to compute the value of the returned CompletionStage
Returns
CompletionStage<U> the new CompletionStage

thenApplyAsync

Added in API level 24
CompletionStage<U> thenApplyAsync (Function<? super T, ? extends U> fn, 
                Executor executor)

返回一个新的CompletionStage,当该阶段正常完成时,使用提供的Executor执行该阶段的结果作为所提供函数的参数。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
fn Function: the function to use to compute the value of the returned CompletionStage
executor Executor: the executor to use for asynchronous execution
Returns
CompletionStage<U> the new CompletionStage

thenCombine

Added in API level 24
CompletionStage<V> thenCombine (CompletionStage<? extends U> other, 
                BiFunction<? super T, ? super U, ? extends V> fn)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,以两个结果作为所提供函数的参数执行。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
fn BiFunction: the function to use to compute the value of the returned CompletionStage
Returns
CompletionStage<V> the new CompletionStage

thenCombineAsync

Added in API level 24
CompletionStage<V> thenCombineAsync (CompletionStage<? extends U> other, 
                BiFunction<? super T, ? super U, ? extends V> fn)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,将使用该阶段的默认异步执行工具执行,并将两个结果作为所提供函数的参数。 有关特殊完成规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
fn BiFunction: the function to use to compute the value of the returned CompletionStage
Returns
CompletionStage<V> the new CompletionStage

thenCombineAsync

Added in API level 24
CompletionStage<V> thenCombineAsync (CompletionStage<? extends U> other, 
                BiFunction<? super T, ? super U, ? extends V> fn, 
                Executor executor)

返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用提供的执行器执行,并将两个结果作为所提供函数的参数。 关于异常完成的规则,请参阅CompletionStage文档。

Parameters
other CompletionStage: the other CompletionStage
fn BiFunction: the function to use to compute the value of the returned CompletionStage
executor Executor: the executor to use for asynchronous execution
Returns
CompletionStage<V> the new CompletionStage

thenCompose

Added in API level 24
CompletionStage<U> thenCompose (Function<? super T, ? extends CompletionStage<U>> fn)

返回一个新的CompletionStage,其完成的值与给定函数返回的CompletionStage的值相同。

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

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

该方法类似于 Optional.flatMapStream.flatMap

关于非常完成的规则,请参阅 CompletionStage文档。

Parameters
fn Function: the function to use to compute another CompletionStage
Returns
CompletionStage<U> the new CompletionStage

thenComposeAsync

Added in API level 24
CompletionStage<U> thenComposeAsync (Function<? super T, ? extends CompletionStage<U>> fn, 
                Executor executor)

返回一个新的CompletionStage,它使用与提供的Executor执行的给定函数返回的CompletionStage相同的值完成。

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

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

关于非常完成的规则,请参阅 CompletionStage文档。

Parameters
fn Function: the function to use to compute another CompletionStage
executor Executor: the executor to use for asynchronous execution
Returns
CompletionStage<U> the new CompletionStage

thenComposeAsync

Added in API level 24
CompletionStage<U> thenComposeAsync (Function<? super T, ? extends CompletionStage<U>> fn)

返回一个新的CompletionStage,它使用与由给定函数返回的CompletionStage相同的值完成,并使用该阶段的默认异步执行工具执行。

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

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

关于非常完成的规则,请参阅 CompletionStage文档。

Parameters
fn Function: the function to use to compute another CompletionStage
Returns
CompletionStage<U> the new CompletionStage

thenRun

Added in API level 24
CompletionStage<Void> thenRun (Runnable action)

返回一个新的CompletionStage,当该阶段正常完成时,执行给定的动作。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
action Runnable: the action to perform before completing the returned CompletionStage
Returns
CompletionStage<Void> the new CompletionStage

thenRunAsync

Added in API level 24
CompletionStage<Void> thenRunAsync (Runnable action, 
                Executor executor)

返回一个新的CompletionStage,当该阶段正常完成时,使用提供的Executor执行给定的操作。 关于非常完成的规则,请参阅CompletionStage文档。

Parameters
action Runnable: the action to perform before completing the returned CompletionStage
executor Executor: the executor to use for asynchronous execution
Returns
CompletionStage<Void> the new CompletionStage

thenRunAsync

Added in API level 24
CompletionStage<Void> thenRunAsync (Runnable action)

返回一个新的CompletionStage,当该阶段正常完成时,使用该阶段的默认异步执行工具执行给定的操作。 有关特殊完成规则,请参阅CompletionStage文档。

Parameters
action Runnable: the action to perform before completing the returned CompletionStage
Returns
CompletionStage<Void> the new CompletionStage

toCompletableFuture

Added in API level 24
CompletableFuture<T> toCompletableFuture ()

返回一个CompletableFuture保持与此阶段相同的完成属性。 如果这个阶段已经是一个CompletableFuture,这个方法本身可能会返回这个阶段。 否则,调用此方法可能等同于thenApply(x -> x) ,但返回类型为CompletableFuture的实例。 不选择与其他人互操作的CompletionStage实现可能会抛出UnsupportedOperationException

Returns
CompletableFuture<T> the CompletableFuture
Throws
UnsupportedOperationException if this implementation does not interoperate with CompletableFuture

whenComplete

Added in API level 24
CompletionStage<T> whenComplete (BiConsumer<? super T, ? super Throwable> action)

返回与此阶段具有相同结果或例外的新CompletionStage,该阶段在此阶段完成时执行给定操作。

当这个阶段完成时,给定的动作被调用,并且结果(或者null如果没有的话)和这个阶段的异常(或者null如果没有)作为参数被调用。 返回的阶段在动作返回时完成。

与方法handle不同,此方法不用于转换完成结果,因此提供的操作不应引发异常。 但是,如果是这样,则适用以下规则:如果此阶段正常完成,但所提供的操作引发异常,则返回的阶段会异常地完成所提供的操作的异常。 或者,如果此阶段异常完成并且提供的操作引发异常,则返回的阶段异常完成,此阶段的异常。

Parameters
action BiConsumer: the action to perform
Returns
CompletionStage<T> the new CompletionStage

whenCompleteAsync

Added in API level 24
CompletionStage<T> whenCompleteAsync (BiConsumer<? super T, ? super Throwable> action)

返回与此阶段具有相同结果或例外的新CompletionStage,该阶段在此阶段完成时使用此阶段的默认异步执行工具执行给定操作。

当这个阶段完成时,给定的动作将以结果(或者null如果没有)和本阶段的异常(或者null如果没有)作为参数来调用。 返回的阶段在动作返回时完成。

与方法handleAsync不同,此方法不用于转换完成结果,因此提供的操作不应引发异常。 但是,如果是这样,则适用以下规则:如果此阶段正常完成,但所提供的操作引发异常,则返回的阶段会异常地完成所提供的操作的异常。 或者,如果此阶段异常完成并且提供的操作引发异常,则返回的阶段异常完成,此阶段的异常。

Parameters
action BiConsumer: the action to perform
Returns
CompletionStage<T> the new CompletionStage

whenCompleteAsync

Added in API level 24
CompletionStage<T> whenCompleteAsync (BiConsumer<? super T, ? super Throwable> action, 
                Executor executor)

返回与此阶段具有相同结果或例外的新CompletionStage,该阶段在此阶段完成时使用提供的Executor执行给定操作。

当这个阶段完成时,给定的动作被调用,并且结果(或者null如果没有的话)和这个阶段的异常(或者null如果没有的话)作为参数被调用。 返回的阶段在动作返回时完成。

与方法handleAsync不同,此方法不用于转换完成结果,因此提供的操作不应引发异常。 但是,如果是这样,则适用以下规则:如果此阶段正常完成,但所提供的操作引发异常,则返回的阶段会异常地完成所提供的操作的异常。 或者,如果此阶段异常完成并且提供的操作引发异常,则返回的阶段异常完成,此阶段的异常。

Parameters
action BiConsumer: the action to perform
executor Executor: the executor to use for asynchronous execution
Returns
CompletionStage<T> the new CompletionStage

Hooray!