Uses of Interface java.util.concurrent.CompletionStage (Java SE 10 & JDK 10 )

## Uses of Interface
java.util.concurrent.CompletionStage

- Packages that use CompletionStage
  Package | Description
  --- | ---
  java.util.concurrent | Utility classes commonly useful in concurrent programming.
  jdk.incubator.http | High level HTTP and WebSocket API

- - ### Uses of CompletionStage in java.util.concurrent

    Classes in java.util.concurrent that implement CompletionStage
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `CompletableFuture<T>` | A `Future` that may be explicitly completed (setting its value and status), and may be used as a `CompletionStage`, supporting dependent functions and actions that trigger upon its completion.

    Methods in java.util.concurrent that return CompletionStage
    Modifier and Type | Method | Description
    --- | --- | ---
    `CompletionStage<Void>` | CompletionStage.`acceptEither​(CompletionStage<? extends T> other, Consumer<? super T> action)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, is executed with the corresponding result as argument to the supplied action.
    `CompletionStage<Void>` | CompletionStage.`acceptEitherAsync​(CompletionStage<? extends T> other, Consumer<? super T> action)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, is executed using this stage's default asynchronous execution facility, with the corresponding result as argument to the supplied action.
    `CompletionStage<Void>` | CompletionStage.`acceptEitherAsync​(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, is executed using the supplied executor, with the corresponding result as argument to the supplied action.
    `<U> CompletionStage<U>` | CompletionStage.`applyToEither​(CompletionStage<? extends T> other, Function<? super T,U> fn)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, is executed with the corresponding result as argument to the supplied function.
    `<U> CompletionStage<U>` | CompletionStage.`applyToEitherAsync​(CompletionStage<? extends T> other, Function<? super T,U> fn)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, is executed using this stage's default asynchronous execution facility, with the corresponding result as argument to the supplied function.
    `<U> CompletionStage<U>` | CompletionStage.`applyToEitherAsync​(CompletionStage<? extends T> other, Function<? super T,U> fn, Executor executor)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, is executed using the supplied executor, with the corresponding result as argument to the supplied function.
    `static <U> CompletionStage<U>` | CompletableFuture.`completedStage​(U value)` | Returns a new CompletionStage that is already completed with the given value and supports only those methods in interface `CompletionStage`.
    `CompletionStage<T>` | CompletionStage.`exceptionally​(Function<Throwable,? extends T> fn)` | Returns a new CompletionStage that, when this stage completes exceptionally, is executed with this stage's exception as the argument to the supplied function.
    `static <U> CompletionStage<U>` | CompletableFuture.`failedStage​(Throwable ex)` | Returns a new CompletionStage that is already completed exceptionally with the given exception and supports only those methods in interface `CompletionStage`.
    `<U> CompletionStage<U>` | CompletionStage.`handle​(BiFunction<? super T,Throwable,? extends U> fn)` | Returns a new CompletionStage that, when this stage completes either normally or exceptionally, is executed with this stage's result and exception as arguments to the supplied function.
    `<U> CompletionStage<U>` | CompletionStage.`handleAsync​(BiFunction<? super T,Throwable,? extends U> fn)` | Returns a new CompletionStage that, when this stage completes either normally or exceptionally, is executed using this stage's default asynchronous execution facility, with this stage's result and exception as arguments to the supplied function.
    `<U> CompletionStage<U>` | CompletionStage.`handleAsync​(BiFunction<? super T,Throwable,? extends U> fn, Executor executor)` | Returns a new CompletionStage that, when this stage completes either normally or exceptionally, is executed using the supplied executor, with this stage's result and exception as arguments to the supplied function.
    `CompletionStage<T>` | CompletableFuture.`minimalCompletionStage()` | Returns a new CompletionStage that is completed normally with the same value as this CompletableFuture when it completes normally, and cannot be independently completed or otherwise used in ways not defined by the methods of interface `CompletionStage`.
    `CompletionStage<Void>` | CompletionStage.`runAfterBoth​(CompletionStage<?> other, Runnable action)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, executes the given action.
    `CompletionStage<Void>` | CompletionStage.`runAfterBothAsync​(CompletionStage<?> other, Runnable action)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, executes the given action using this stage's default asynchronous execution facility.
    `CompletionStage<Void>` | CompletionStage.`runAfterBothAsync​(CompletionStage<?> other, Runnable action, Executor executor)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, executes the given action using the supplied executor.
    `CompletionStage<Void>` | CompletionStage.`runAfterEither​(CompletionStage<?> other, Runnable action)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, executes the given action.
    `CompletionStage<Void>` | CompletionStage.`runAfterEitherAsync​(CompletionStage<?> other, Runnable action)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, executes the given action using this stage's default asynchronous execution facility.
    `CompletionStage<Void>` | CompletionStage.`runAfterEitherAsync​(CompletionStage<?> other, Runnable action, Executor executor)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, executes the given action using the supplied executor.
    `CompletionStage<Void>` | CompletionStage.`thenAccept​(Consumer<? super T> action)` | Returns a new CompletionStage that, when this stage completes normally, is executed with this stage's result as the argument to the supplied action.
    `CompletionStage<Void>` | CompletionStage.`thenAcceptAsync​(Consumer<? super T> action)` | Returns a new CompletionStage that, when this stage completes normally, is executed using this stage's default asynchronous execution facility, with this stage's result as the argument to the supplied action.
    `CompletionStage<Void>` | CompletionStage.`thenAcceptAsync​(Consumer<? super T> action, Executor executor)` | Returns a new CompletionStage that, when this stage completes normally, is executed using the supplied Executor, with this stage's result as the argument to the supplied action.
    `<U> CompletionStage<Void>` | CompletionStage.`thenAcceptBoth​(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, is executed with the two results as arguments to the supplied action.
    `<U> CompletionStage<Void>` | CompletionStage.`thenAcceptBothAsync​(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, is executed using this stage's default asynchronous execution facility, with the two results as arguments to the supplied action.
    `<U> CompletionStage<Void>` | CompletionStage.`thenAcceptBothAsync​(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action, Executor executor)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, is executed using the supplied executor, with the two results as arguments to the supplied action.
    `<U> CompletionStage<U>` | CompletionStage.`thenApply​(Function<? super T,? extends U> fn)` | Returns a new CompletionStage that, when this stage completes normally, is executed with this stage's result as the argument to the supplied function.
    `<U> CompletionStage<U>` | CompletionStage.`thenApplyAsync​(Function<? super T,? extends U> fn)` | Returns a new CompletionStage that, when this stage completes normally, is executed using this stage's default asynchronous execution facility, with this stage's result as the argument to the supplied function.
    `<U> CompletionStage<U>` | CompletionStage.`thenApplyAsync​(Function<? super T,? extends U> fn, Executor executor)` | Returns a new CompletionStage that, when this stage completes normally, is executed using the supplied Executor, with this stage's result as the argument to the supplied function.
    `<U,V> CompletionStage<V>` | CompletionStage.`thenCombine​(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, is executed with the two results as arguments to the supplied function.
    `<U,V> CompletionStage<V>` | CompletionStage.`thenCombineAsync​(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, is executed using this stage's default asynchronous execution facility, with the two results as arguments to the supplied function.
    `<U,V> CompletionStage<V>` | CompletionStage.`thenCombineAsync​(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn, Executor executor)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, is executed using the supplied executor, with the two results as arguments to the supplied function.
    `<U> CompletionStage<U>` | CompletionStage.`thenCompose​(Function<? super T,? extends CompletionStage<U>> fn)` | Returns a new CompletionStage that is completed with the same value as the CompletionStage returned by the given function.
    `<U> CompletionStage<U>` | CompletionStage.`thenComposeAsync​(Function<? super T,? extends CompletionStage<U>> fn)` | Returns a new CompletionStage that is completed with the same value as the CompletionStage returned by the given function, executed using this stage's default asynchronous execution facility.
    `<U> CompletionStage<U>` | CompletionStage.`thenComposeAsync​(Function<? super T,? extends CompletionStage<U>> fn, Executor executor)` | Returns a new CompletionStage that is completed with the same value as the CompletionStage returned by the given function, executed using the supplied Executor.
    `CompletionStage<Void>` | CompletionStage.`thenRun​(Runnable action)` | Returns a new CompletionStage that, when this stage completes normally, executes the given action.
    `CompletionStage<Void>` | CompletionStage.`thenRunAsync​(Runnable action)` | Returns a new CompletionStage that, when this stage completes normally, executes the given action using this stage's default asynchronous execution facility.
    `CompletionStage<Void>` | CompletionStage.`thenRunAsync​(Runnable action, Executor executor)` | Returns a new CompletionStage that, when this stage completes normally, executes the given action using the supplied Executor.
    `CompletionStage<T>` | CompletionStage.`whenComplete​(BiConsumer<? super T,? super Throwable> action)` | Returns a new CompletionStage with the same result or exception as this stage, that executes the given action when this stage completes.
    `CompletionStage<T>` | CompletionStage.`whenCompleteAsync​(BiConsumer<? super T,? super Throwable> action)` | Returns a new CompletionStage with the same result or exception as this stage, that executes the given action using this stage's default asynchronous execution facility when this stage completes.
    `CompletionStage<T>` | CompletionStage.`whenCompleteAsync​(BiConsumer<? super T,? super Throwable> action, Executor executor)` | Returns a new CompletionStage with the same result or exception as this stage, that executes the given action using the supplied Executor when this stage completes.

    Methods in java.util.concurrent with parameters of type CompletionStage
    Modifier and Type | Method | Description
    --- | --- | ---
    `CompletionStage<Void>` | CompletionStage.`acceptEither​(CompletionStage<? extends T> other, Consumer<? super T> action)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, is executed with the corresponding result as argument to the supplied action.
    `CompletionStage<Void>` | CompletionStage.`acceptEitherAsync​(CompletionStage<? extends T> other, Consumer<? super T> action)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, is executed using this stage's default asynchronous execution facility, with the corresponding result as argument to the supplied action.
    `CompletionStage<Void>` | CompletionStage.`acceptEitherAsync​(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, is executed using the supplied executor, with the corresponding result as argument to the supplied action.
    `<U> CompletionStage<U>` | CompletionStage.`applyToEither​(CompletionStage<? extends T> other, Function<? super T,U> fn)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, is executed with the corresponding result as argument to the supplied function.
    `<U> CompletionStage<U>` | CompletionStage.`applyToEitherAsync​(CompletionStage<? extends T> other, Function<? super T,U> fn)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, is executed using this stage's default asynchronous execution facility, with the corresponding result as argument to the supplied function.
    `<U> CompletionStage<U>` | CompletionStage.`applyToEitherAsync​(CompletionStage<? extends T> other, Function<? super T,U> fn, Executor executor)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, is executed using the supplied executor, with the corresponding result as argument to the supplied function.
    `CompletionStage<Void>` | CompletionStage.`runAfterBoth​(CompletionStage<?> other, Runnable action)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, executes the given action.
    `CompletionStage<Void>` | CompletionStage.`runAfterBothAsync​(CompletionStage<?> other, Runnable action)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, executes the given action using this stage's default asynchronous execution facility.
    `CompletionStage<Void>` | CompletionStage.`runAfterBothAsync​(CompletionStage<?> other, Runnable action, Executor executor)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, executes the given action using the supplied executor.
    `CompletionStage<Void>` | CompletionStage.`runAfterEither​(CompletionStage<?> other, Runnable action)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, executes the given action.
    `CompletionStage<Void>` | CompletionStage.`runAfterEitherAsync​(CompletionStage<?> other, Runnable action)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, executes the given action using this stage's default asynchronous execution facility.
    `CompletionStage<Void>` | CompletionStage.`runAfterEitherAsync​(CompletionStage<?> other, Runnable action, Executor executor)` | Returns a new CompletionStage that, when either this or the other given stage complete normally, executes the given action using the supplied executor.
    `<U> CompletionStage<Void>` | CompletionStage.`thenAcceptBoth​(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, is executed with the two results as arguments to the supplied action.
    `<U> CompletionStage<Void>` | CompletionStage.`thenAcceptBothAsync​(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, is executed using this stage's default asynchronous execution facility, with the two results as arguments to the supplied action.
    `<U> CompletionStage<Void>` | CompletionStage.`thenAcceptBothAsync​(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action, Executor executor)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, is executed using the supplied executor, with the two results as arguments to the supplied action.
    `<U,V> CompletionStage<V>` | CompletionStage.`thenCombine​(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, is executed with the two results as arguments to the supplied function.
    `<U,V> CompletionStage<V>` | CompletionStage.`thenCombineAsync​(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, is executed using this stage's default asynchronous execution facility, with the two results as arguments to the supplied function.
    `<U,V> CompletionStage<V>` | CompletionStage.`thenCombineAsync​(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn, Executor executor)` | Returns a new CompletionStage that, when this and the other given stage both complete normally, is executed using the supplied executor, with the two results as arguments to the supplied function.

    Method parameters in java.util.concurrent with type arguments of type CompletionStage
    Modifier and Type | Method | Description
    --- | --- | ---
    `<U> CompletionStage<U>` | CompletionStage.`thenCompose​(Function<? super T,? extends CompletionStage<U>> fn)` | Returns a new CompletionStage that is completed with the same value as the CompletionStage returned by the given function.
    `<U> CompletionStage<U>` | CompletionStage.`thenComposeAsync​(Function<? super T,? extends CompletionStage<U>> fn)` | Returns a new CompletionStage that is completed with the same value as the CompletionStage returned by the given function, executed using this stage's default asynchronous execution facility.
    `<U> CompletionStage<U>` | CompletionStage.`thenComposeAsync​(Function<? super T,? extends CompletionStage<U>> fn, Executor executor)` | Returns a new CompletionStage that is completed with the same value as the CompletionStage returned by the given function, executed using the supplied Executor.

  - ### Uses of CompletionStage in jdk.incubator.http

    Methods in jdk.incubator.http that return CompletionStage
    Modifier and Type | Method | Description
    --- | --- | ---
    `CompletionStage<T>` | HttpResponse.BodySubscriber.`getBody()` | Returns a `CompletionStage` which when completed will return the response body object.
    `default CompletionStage<?>` | WebSocket.Listener.`onBinary​(WebSocket webSocket, ByteBuffer message, WebSocket.MessagePart part)` | A Binary message has been received.
    `default CompletionStage<?>` | WebSocket.Listener.`onClose​(WebSocket webSocket, int statusCode, String reason)` | A Close message has been received.
    `default CompletionStage<?>` | WebSocket.Listener.`onPing​(WebSocket webSocket, ByteBuffer message)` | A Ping message has been received.
    `default CompletionStage<?>` | WebSocket.Listener.`onPong​(WebSocket webSocket, ByteBuffer message)` | A Pong message has been received.
    `default CompletionStage<?>` | WebSocket.Listener.`onText​(WebSocket webSocket, CharSequence message, WebSocket.MessagePart part)` | A Text message has been received.