Интерфейс CompletionStage<T>
- Все известные реализующие классы:
CompletableFuture
public interface CompletionStage<T>
Этап возможного асинхронного вычисления, выполняющий действие или вычисляющий значение, когда завершается другой CompletionStage. Этап завершается по завершении своего вычисления, но это может, в свою очередь, запустить другие зависимые этапы. Функциональность, определённая в этом интерфейсе, принимает только несколько основных форм, которые расширяются до большего набора методов для захвата различных стилей использования:
- Вычисление, выполняемое этапом, может быть выражено как функция, потребитель или задача (используя методы с именами, включающими apply, accept или run соответственно) в зависимости от того, требует ли оно аргументов и/или генерирует результаты. Например:
stage.thenApply(x -> square(x)) .thenAccept(x -> System.out.print(x)) .thenRun(() -> System.out.println());Дополнительная форма (compose) позволяет создавать цепочки вычислений из функций, возвращающих CompletionStage.Любой аргумент вычисления этапа является результатом вычисления запускающего этапа.
- Выполнение одного этапа может быть инициировано завершением одного этапа, или двух этапов, или любого из двух этапов. Зависимости от одного этапа организованы с помощью методов с префиксом then. Те, которые запускаются завершением обоих этапов, могут объединить свои результаты или эффекты, используя соответствующие методы. Те, которые запускаются любым из двух этапов, не гарантируют, какой из результатов или эффектов используется для вычисления зависимого этапа.
- Зависимости между этапами управляют запуском вычислений, но не гарантируют никакой особой последовательности. Кроме того, выполнение вычислений нового этапа может быть организовано тремя способами: по умолчанию, по умолчанию асинхронно (используя методы с суффиксом async, использующие средство асинхронного выполнения по умолчанию этапа), или пользовательским (через предоставленный
Executor). Свойства выполнения режимов по умолчанию и async задаются реализациями CompletionStage, а не этим интерфейсом. Методы с явными аргументами Executor могут иметь произвольные свойства выполнения и даже могут не поддерживать одновременное выполнение, но организованы для обработки способом, который учитывает асинхронность. - Две формы методов (
handleиwhenComplete) поддерживают безусловное вычисление, независимо от того, завершился ли запускающий этап нормально или с исключением. Методexceptionallyподдерживает вычисление только при завершении запускающего этапа с исключением, вычисляя заменяющий результат, аналогично ключевому слову javacatch. Во всех других случаях, если вычисление этапа завершается внезапно с (непроверяемым) исключением или ошибкой, то все зависимые этапы, требующие его завершения, также завершаются с исключением, сCompletionException, содержащим исключение как причину. Если этап зависит от обоих этапов, и оба завершаются с исключением, то CompletionException может соответствовать любому из этих исключений. Если этап зависит от любого из двух других, и только один из них завершается с исключением, не гарантируется, завершится ли зависимый этап нормально или с исключением. В случае методаwhenComplete, когда предоставленное действие само сталкивается с исключением, то этап завершается с этим исключением, если только исходный этап также не завершился с исключением, в этом случае предпочтительным и распространяемым на зависимый этап считается исключительное завершение исходного этапа.
Все методы придерживаются вышеуказанных спецификаций запуска, выполнения и исключительного завершения (которые не повторяются в отдельных спецификациях методов). Кроме того, хотя аргументы, используемые для передачи результата завершения (то есть для параметров типа T) для методов, принимающих их, могут быть null, передача null для любого другого параметра приведет к тому, что будет выброшено исключение NullPointerException.
Форма метода handle является наиболее общим способом создания этапа продолжения, безусловно выполняя вычисление, которому передаются результат и исключение (если таковое имеется) запускающего CompletionStage, и вычисляется произвольный результат. Метод whenComplete аналогичен, но сохраняет результат запускающего этапа вместо вычисления нового. Поскольку нормальный результат этапа может быть null, оба метода должны иметь вычисление, структурированное таким образом:
(result, exception) -> {
if (exception == null) {
// triggering stage completed normally
} else {
// triggering stage completed exceptionally
}
} Этот интерфейс не определяет методы для первоначального создания, принудительного завершения нормально или с исключением, проверки статуса завершения или результатов или ожидания завершения этапа. Реализации CompletionStage могут предоставлять средства для достижения таких эффектов, по мере необходимости. Метод toCompletableFuture() обеспечивает межсовместимость между различными реализациями этого интерфейса, предоставляя общий тип преобразования.
- С:
- 1.8
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
CompletionStage<Void> | acceptEither(CompletionStage<? extends T> other,
Consumer<? super T> action) | Возвращает новую CompletionStage, которая, когда либо эта, либо другая заданная фаза завершатся нормально, выполняется с соответствующим результатом в качестве аргумента для предоставленного действия. |
CompletionStage<Void> | acceptEitherAsync(CompletionStage<? extends T> other,
Consumer<? super T> action) | Возвращает новую CompletionStage, которая, когда либо эта, либо другая заданная фаза завершатся нормально, выполняется с использованием стандартного асинхронного механизма выполнения этой фазы, с соответствующим результатом в качестве аргумента для предоставленного действия. |
CompletionStage<Void> | acceptEitherAsync(CompletionStage<? extends T> other,
Consumer<? super T> action,
Executor executor) | Возвращает новую CompletionStage, которая, когда либо эта, либо другая заданная фаза завершатся нормально, выполняется с использованием предоставленного исполнителя, с соответствующим результатом в качестве аргумента для предоставленного действия. |
<U> CompletionStage<U> | applyToEither(CompletionStage<? extends T> other,
Function<? super T,U> fn) | Возвращает новую CompletionStage, которая, когда либо эта, либо другая заданная фаза завершатся нормально, выполняется с соответствующим результатом в качестве аргумента для предоставленной функции. |
<U> CompletionStage<U> | applyToEitherAsync(CompletionStage<? extends T> other,
Function<? super T,U> fn) | Возвращает новую CompletionStage, которая, когда либо эта, либо другая заданная фаза завершатся нормально, выполняется с использованием стандартного асинхронного механизма выполнения этой фазы, с соответствующим результатом в качестве аргумента для предоставленной функции. |
<U> CompletionStage<U> | applyToEitherAsync(CompletionStage<? extends T> other,
Function<? super T,U> fn,
Executor executor) | Возвращает новую CompletionStage, которая, когда либо эта, либо другая заданная фаза завершатся нормально, выполняется с использованием предоставленного исполнителя, с соответствующим результатом в качестве аргумента для предоставленной функции. |
CompletionStage<T> | exceptionally(Function<Throwable,? extends T> fn) | Возвращает новую CompletionStage, которая, когда эта фаза завершится с исключением, выполняется с исключением этой фазы в качестве аргумента для предоставленной функции. |
<U> CompletionStage<U> | handle(BiFunction<? super T,Throwable,? extends U> fn) | Возвращает новую CompletionStage, которая, когда эта фаза завершится либо нормально, либо с исключением, выполняется с результатом и исключением этой фазы в качестве аргументов для предоставленной функции. |
<U> CompletionStage<U> | handleAsync(BiFunction<? super T,Throwable,? extends U> fn) | Возвращает новую CompletionStage, которая, когда эта фаза завершится либо нормально, либо с исключением, выполняется с использованием стандартного асинхронного механизма выполнения этой фазы, с результатом и исключением этой фазы в качестве аргументов для предоставленной функции. |
<U> CompletionStage<U> | handleAsync(BiFunction<? super T,Throwable,? extends U> fn,
Executor executor) | Возвращает новую CompletionStage, которая, когда эта фаза завершится либо нормально, либо с исключением, выполняется с использованием предоставленного исполнителя, с результатом и исключением этой фазы в качестве аргументов для предоставленной функции. |
CompletionStage<Void> | runAfterBoth(CompletionStage<?> other,
Runnable action) | Возвращает новую CompletionStage, которая, когда эта и другая заданная фаза обе завершатся нормально, выполняет заданное действие. |
CompletionStage<Void> | runAfterBothAsync(CompletionStage<?> other,
Runnable action) | Возвращает новую CompletionStage, которая, когда эта и другая заданная фаза обе завершатся нормально, выполняет заданное действие с использованием стандартного асинхронного механизма выполнения этой фазы. |
CompletionStage<Void> | runAfterBothAsync(CompletionStage<?> other,
Runnable action,
Executor executor) | Возвращает новую CompletionStage, которая, когда эта и другая заданная фаза обе завершатся нормально, выполняет заданное действие с использованием предоставленного исполнителя. |
CompletionStage<Void> | runAfterEither(CompletionStage<?> other,
Runnable action) | Возвращает новую CompletionStage, которая, когда либо эта, либо другая заданная фаза завершатся нормально, выполняет заданное действие. |
CompletionStage<Void> | runAfterEitherAsync(CompletionStage<?> other,
Runnable action) | Возвращает новую CompletionStage, которая, когда либо эта, либо другая заданная фаза завершатся нормально, выполняет заданное действие с использованием стандартного асинхронного механизма выполнения этой фазы. |
CompletionStage<Void> | runAfterEitherAsync(CompletionStage<?> other,
Runnable action,
Executor executor) | Возвращает новую CompletionStage, которая, когда либо эта, либо другая заданная фаза завершатся нормально, выполняет заданное действие с использованием предоставленного исполнителя. |
CompletionStage<Void> | thenAccept(Consumer<? super T> action) | Возвращает новую CompletionStage, которая, когда эта фаза завершится нормально, выполняется с результатом этой фазы в качестве аргумента для предоставленного действия. |
CompletionStage<Void> | thenAcceptAsync(Consumer<? super T> action) | Возвращает новую CompletionStage, которая, когда эта фаза завершится нормально, выполняется с использованием стандартного асинхронного механизма выполнения этой фазы, с результатом этой фазы в качестве аргумента для предоставленного действия. |
CompletionStage<Void> | thenAcceptAsync(Consumer<? super T> action,
Executor executor) | Возвращает новую CompletionStage, которая, когда эта фаза завершится нормально, выполняется с использованием предоставленного исполнителя, с результатом этой фазы в качестве аргумента для предоставленного действия. |
<U> CompletionStage<Void> | thenAcceptBoth(CompletionStage<? extends U> other,
BiConsumer<? super T,? super U> action) | Возвращает новую CompletionStage, которая, когда эта и другая заданная фаза обе завершатся нормально, выполняется с двумя результатами в качестве аргументов для предоставленного действия. |
<U> CompletionStage<Void> | thenAcceptBothAsync(CompletionStage<? extends U> other,
BiConsumer<? super T,? super U> action) | Возвращает новую CompletionStage, которая, когда эта и другая заданная фаза обе завершатся нормально, выполняется с использованием стандартного асинхронного механизма выполнения этой фазы, с двумя результатами в качестве аргументов для предоставленного действия. |
<U> CompletionStage<Void> | thenAcceptBothAsync(CompletionStage<? extends U> other,
BiConsumer<? super T,? super U> action,
Executor executor) | Возвращает новую CompletionStage, которая, когда эта и другая заданная фаза обе завершатся нормально, выполняется с использованием предоставленного исполнителя, с двумя результатами в качестве аргументов для предоставленного действия. |
<U> CompletionStage<U> | thenApply(Function<? super T,? extends U> fn) | Возвращает новую CompletionStage, которая, когда эта фаза завершится нормально, выполняется с результатом этой фазы в качестве аргумента для предоставленной функции. |
<U> CompletionStage<U> | thenApplyAsync(Function<? super T,? extends U> fn) | Возвращает новую CompletionStage, которая, когда эта фаза завершится нормально, выполняется с использованием стандартного асинхронного механизма выполнения этой фазы, с результатом этой фазы в качестве аргумента для предоставленной функции. |
<U> CompletionStage<U> | thenApplyAsync(Function<? super T,? extends U> fn,
Executor executor) | Возвращает новую CompletionStage, которая, когда эта фаза завершится нормально, выполняется с использованием предоставленного исполнителя, с результатом этой фазы в качестве аргумента для предоставленной функции. |
<U,V> | thenCombine(CompletionStage<? extends U> other,
BiFunction<? super T,? super U,? extends V> fn) | Возвращает новую CompletionStage, которая, когда эта и другая заданная фаза обе завершатся нормально, выполняется с двумя результатами в качестве аргументов для предоставленной функции. |
<U,V> | thenCombineAsync(CompletionStage<? extends U> other,
BiFunction<? super T,? super U,? extends V> fn) | Возвращает новую CompletionStage, которая, когда эта и другая заданная фаза обе завершатся нормально, выполняется с использованием стандартного асинхронного механизма выполнения этой фазы, с двумя результатами в качестве аргументов для предоставленной функции. |
<U,V> | thenCombineAsync(CompletionStage<? extends U> other,
BiFunction<? super T,? super U,? extends V> fn,
Executor executor) | Возвращает новую CompletionStage, которая, когда эта и другая заданная фаза обе завершатся нормально, выполняется с использованием предоставленного исполнителя, с двумя результатами в качестве аргументов для предоставленной функции. |
<U> CompletionStage<U> | thenCompose(Function<? super T,? extends CompletionStage<U>> fn) | Возвращает новую CompletionStage, которая завершается тем же значением, что и CompletionStage, возвращенная заданной функцией. |
<U> CompletionStage<U> | thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn) | Возвращает новую CompletionStage, которая завершается тем же значением, что и CompletionStage, возвращенная заданной функцией, выполненная с использованием стандартного асинхронного механизма выполнения этой фазы. |
<U> CompletionStage<U> | thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn,
Executor executor) | Возвращает новую CompletionStage, которая завершается тем же значением, что и CompletionStage, возвращенная заданной функцией, выполненная с использованием предоставленного исполнителя. |
CompletionStage<Void> | thenRun(Runnable action) | Возвращает новую CompletionStage, которая, когда эта фаза завершится нормально, выполняет заданное действие. |
CompletionStage<Void> | thenRunAsync(Runnable action) | Возвращает новую CompletionStage, которая, когда эта фаза завершится нормально, выполняет заданное действие с использованием стандартного асинхронного механизма выполнения этой фазы. |
CompletionStage<Void> | thenRunAsync(Runnable action,
Executor executor) | Возвращает новую CompletionStage, которая, когда эта фаза завершится нормально, выполняет заданное действие с использованием предоставленного исполнителя. |
CompletableFuture<T> | toCompletableFuture() | Возвращает |
CompletionStage<T> | whenComplete(BiConsumer<? super T,? super Throwable> action) | Возвращает новую CompletionStage с тем же результатом или исключением, что и у этой фазы, которая выполняет заданное действие, когда эта фаза завершится. |
CompletionStage<T> | whenCompleteAsync(BiConsumer<? super T,? super Throwable> action) | Возвращает новую CompletionStage с тем же результатом или исключением, что и у этой фазы, которая выполняет заданное действие с использованием стандартного асинхронного механизма выполнения этой фазы, когда эта фаза завершится. |
CompletionStage<T> | whenCompleteAsync(BiConsumer<? super T,? super Throwable> action,
Executor executor) | Возвращает новую CompletionStage с тем же результатом или исключением, что и у этой фазы, которая выполняет заданное действие с использованием предоставленного исполнителя, когда эта фаза завершится. |
Методы
thenApply
<U> CompletionStage<U> thenApply(Function<? super T,? extends U> fn)
Возвращает новый CompletionStage, который, когда этот этап завершается нормально, выполняется с результатом этого этапа в качестве аргумента для предоставленной функции.
Этот метод аналогичен Optional.map и Stream.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- 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- 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- 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, который, когда этот и другой заданный этап оба завершаются нормально, выполняется с использованием предоставленного executor, с двумя результатами в качестве аргументов для предоставленной функции. См. документацию CompletionStage для правил, охватывающих исключительное завершение.
- Параметры типа:
-
U- тип результата другого CompletionStage -
V- тип возвращаемого значения функции - Параметры:
-
other- другой CompletionStage -
fn- функция, используемая для вычисления значения возвращаемого CompletionStage -
executor- 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, который, когда этот и другой заданный этап оба завершаются нормально, выполняется с использованием предоставленного executor, с двумя результатами в качестве аргументов для предоставленного действия. См. документацию CompletionStage для правил, охватывающих исключительное завершение.
- Параметры типа:
-
U- тип результата другого CompletionStage - Параметры:
-
other- другой CompletionStage -
action- действие, выполняемое перед завершением возвращаемого CompletionStage -
executor- 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- используемый 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- используемый 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- используемый 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- используемый executor для асинхронного выполнения - Возвращает:
- новый CompletionStage
thenCompose
<U> CompletionStage<U> thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
Возвращает новый CompletionStage, который завершается тем же значением, что и CompletionStage, возвращаемый заданной функцией.
Когда этот этап завершается нормально, заданная функция вызывается с результатом этого этапа в качестве аргумента, возвращая другой CompletionStage. Когда этот этап завершается нормально, CompletionStage, возвращаемый этим методом, завершается тем же значением.
Для обеспечения прогресса, предоставленная функция должна организовать конечное завершение своего результата.
Этот метод аналогичен Optional.flatMap и Stream.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, возвращаемый заданной функцией, выполняемой с помощью предоставленного исполнителя.
Когда этот этап завершается нормально, заданная функция вызывается с результатом этого этапа в качестве аргумента, возвращая другой 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 с тем же результатом или исключением, что и этот этап, который выполняет заданное действие с использованием предоставленного исполнителя при завершении этого этапа.
Когда этот этап завершен, заданное действие вызывается с результатом (или 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.
- Возвращает:
- CompletableFuture
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/CompletionStage.html