public interface CompletionStage
java.util.concurrent.CompletionStage<T> |
Known Indirect Subclasses |
一个可能是异步计算的阶段,在另一个CompletionStage完成时执行一个操作或计算一个值。 一个阶段在其计算结束时完成,但这可能反过来触发其他从属阶段。 在这个界面中定义的功能只需要几个基本表单,这些基本表单扩展到一组更大的方法来捕获一系列的使用方式:
stage.thenApply(x -> square(x))
.thenAccept(x -> System.out.print(x))
.thenRun(() -> System.out.println());
An additional form (compose) allows the construction of computation pipelines from functions returning completion stages. 阶段计算的任何参数都是触发阶段计算的结果。
Executor
). The execution properties of default and async modes are specified by CompletionStage implementations, not this interface. Methods with explicit Executor arguments may have arbitrary execution properties, and might not even support concurrent execution, but are arranged for processing in a way that accommodates asynchrony. handle
and whenComplete
) support unconditional computation whether the triggering stage completed normally or exceptionally. Method exceptionally
supports computation only when the triggering stage completes exceptionally, computing a replacement result, similarly to the java catch
keyword. In all other cases, if a stage's computation terminates abruptly with an (unchecked) exception or error, then all dependent stages requiring its completion complete exceptionally as well, with a CompletionException
holding the exception as its cause. If a stage is dependent on both of two stages, and both complete exceptionally, then the CompletionException may correspond to either one of these exceptions. If a stage is dependent on either of two others, and only one of them completes exceptionally, no guarantees are made about whether the dependent stage completes normally or exceptionally. In the case of method whenComplete
, when the supplied action itself encounters an exception, then the stage completes exceptionally with this exception unless the source stage also completed exceptionally, in which case the exceptional completion from the source stage is given preference and propagated to the dependent stage. 所有方法都遵守上述触发,执行和特殊完成规范(在各个方法规范中不再重复)。 此外,虽然用于为接受它们的方法传递完成结果(即,类型为T
参数)的参数可能为空,但为任何其他参数传递null值将导致抛出NullPointerException
。
方法形式handle
是创建延续阶段的最常用方式,无条件地执行计算,同时给出触发CompletionStage的结果和异常(如果有)并计算任意结果。 方法whenComplete
类似,但保留触发阶段的结果而不是计算新的结果。 因为一个阶段的正常结果可能是null
,所以这两种方法都应该具有这样的计算结构:
(result, exception) -> {
if (exception == null) {
// triggering stage completed normally
} else {
// triggering stage completed exceptionally
}
}
该界面没有定义最初创建,强制正常或异常完成,探测完成状态或结果,或等待阶段完成的方法。 完成阶段的实施可酌情提供实现此类效果的手段。 方法toCompletableFuture()
通过提供通用转换类型来实现此接口的不同实现之间的互操作性。
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() 返回一个 |
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执行给定操作。 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
CompletionStage<U> thenApply (Function<? super T, ? extends U> fn)
返回一个新的CompletionStage,当该阶段正常完成时,该阶段的结果作为所提供函数的参数执行。
该方法类似于 Optional.map
和 Stream.map
。
关于异常完成的规则,请参阅 CompletionStage
文档。
Parameters | |
---|---|
fn |
Function : the function to use to compute the value of the returned CompletionStage |
Returns | |
---|---|
CompletionStage<U> |
the new CompletionStage |
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 |
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 |
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 |
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 |
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 |
CompletionStage<U> thenCompose (Function<? super T, ? extends CompletionStage<U>> fn)
返回一个新的CompletionStage,其完成的值与给定函数返回的CompletionStage的值相同。
当这个阶段正常完成时,以该阶段的结果作为参数调用给定函数,返回另一个CompletionStage。 当该阶段正常完成时,此方法返回的CompletionStage将以相同的值完成。
为确保进度,所提供的功能必须安排最终的结果。
该方法类似于 Optional.flatMap
和 Stream.flatMap
。
关于非常完成的规则,请参阅 CompletionStage
文档。
Parameters | |
---|---|
fn |
Function : the function to use to compute another CompletionStage |
Returns | |
---|---|
CompletionStage<U> |
the new CompletionStage |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |