Top Description Methods
org.osgi.util.promise

public Interface Promise<T>

Known Direct Implementers
org.osgi.util.promise.PromiseImpl
Annotations
@ProviderType
Type Parameters
<T>
The value type associated with this Promise.
Imports
java.lang.reflect.InvocationTargetException, java.util.concurrent.CompletionStage, org.osgi.annotation.versioning.ProviderType, org.osgi.util.function.Consumer, .Function, .Predicate

A Promise of a value.

A Promise represents a future value. It handles the interactions for asynchronous processing. A Deferred object can be used to create a Promise and later resolve the Promise. A Promise is used by the caller of an asynchronous function to get the result or handle the error. The caller can either get a callback when the Promise is resolved with a value or an error, or the Promise can be used in chaining. In chaining, callbacks are provided that receive the resolved Promise, and a new Promise is generated that resolves based upon the result of a callback.

Both callbacks and chaining can be repeated any number of times, even after the Promise has been resolved.

Example callback usage:

Promise<String> foo = foo();
foo.onResolve(() -> System.out.println("resolved"));
Example chaining usage;
Success<String,String> doubler = p -> Promises
		.resolved(p.getValue() + p.getValue());
Promise<String> foo = foo().then(doubler).then(doubler);
Author
$Id: ae37896ddcc90cf4257672200a6ee6625749ba05 $

Method Summary

Modifier and TypeMethod and Description
public Promise<T>

Returns:

A Promise that is resolved with this Promise after this Promise is resolved and the specified delay has elapsed.
delay
(long
The time to delay in milliseconds. Zero and negative time is treated as no delay.
milliseconds
)

Delay after the resolution of this Promise.

public Promise<T>

Returns:

A Promise that returns the value of this Promise or falls back to the value of the specified Promise.
fallbackTo
(Promise<? extends T>
The Promise whose value must be used to resolve the returned Promise if this Promise resolves with a failure. Must not be null.
fallback
)

Fall back to the value of the specified Promise if this Promise fails.

public Promise<T>

Returns:

A Promise that returns the value of this Promise or falls back to the value of the specified Promise if the failure is an instance of the specified failure type.
fallbackTo
(Promise<? extends T>
The Promise whose value must be used to resolve the returned Promise if this Promise resolves with a failure and the failure is an instance of the specified failure type. Must not be null.
fallback
,
Class<?>
The type of failure for which this recovery will be used. If the failure is not an instance of the failure type, the specified recovery will not be called and the returned Promise must be failed with the failure of this Promise. Must not be null.
failureType
)

Fall back to the value of the specified Promise if this Promise fails and the failure is an instance of a failure type.

public Promise<T>

Returns:

A Promise that filters the value of this Promise.
filter
(Predicate<? super T>
The Predicate to evaluate the value of this Promise. Must not be null.
predicate
)

Filter the value of this Promise.

public <
The value type associated with the returned Promise.
R
>
Promise<R>

Returns:

A Promise that returns the value of this Promise as mapped by the specified Function.
flatMap
(Function<? super T, Promise<? extends R>>
The Function that must flatMap the value of this Promise to a Promise that must be used to resolve the returned Promise. Must not be null.
mapper
)

FlatMap the value of this Promise.

public Throwable

Returns:

The failure of this resolved Promise or null if this Promise was successfully resolved.
getFailure
()

Returns the failure of this Promise.

public T

Returns:

The value of this resolved Promise.
getValue
()

Returns the value of this Promise.

public boolean

Returns:

true if this Promise was resolved either successfully or with a failure; false if this Promise is unresolved.
isDone
()

Returns whether this Promise has been resolved.

public <
The value type associated with the returned Promise.
R
>
Promise<R>

Returns:

A Promise that returns the value of this Promise as mapped by the specified Function.
map
(Function<? super T, ? extends R>
The Function that must map the value of this Promise to the value that must be used to resolve the returned Promise. Must not be null.
mapper
)

Map the value of this Promise.

public Promise<T>

Returns:

This Promise.
onFailure
(Consumer<? super Throwable>
The Consumer callback that receives the failure of this Promise. Must not be null.
failure
)

Register a callback to be called with the failure for this Promise when this Promise is resolved with a failure.

public <
The failure type.
F
>
Promise<T>

Returns:

This Promise.
onFailure
(Consumer<? super F>
The Consumer callback that receives the failure of this Promise if the failure is an instance of the specified failure type. Must not be null.
failure
,
Class<? extends F>
The type of failure for which this callback will be called. If the failure is not an instance of the specified failure type, the specified callback will not be called. Must not be null.
failureType
)

Register a callback to be called with the failure for this Promise when this Promise is resolved with a failure of a failure type.

public Promise<T>

Returns:

This Promise.
onResolve
(Runnable
The callback to be called when this Promise is resolved. Must not be null.
callback
)

Register a callback to be called when this Promise is resolved.

public Promise<T>

Returns:

This Promise.
onSuccess
(Consumer<? super T>
The Consumer callback that receives the value of this Promise. Must not be null.
success
)

Register a callback to be called with the result of this Promise when this Promise is resolved successfully.

public Promise<T>

Returns:

A Promise that resolves with the value of this Promise or recovers from the failure of this Promise.
recover
(Function<Promise<?>, ? extends T>
If this Promise resolves with a failure, the specified Function is called to produce a recovery value to be used to resolve the returned Promise. Must not be null.
recovery
)

Recover from a failure of this Promise with a recovery value.

public Promise<T>

Returns:

A Promise that resolves with the value of this Promise or recovers from the failure of this Promise if the failure is an instance of the specified failure type.
recover
(Function<Promise<?>, ? extends T>
If this Promise resolves with a failure and the failure is an instance of the specified failure type, the specified Function is called to produce a recovery value to be used to resolve the returned Promise. Must not be null.
recovery
,
Class<?>
The type of failure for which the specified recovery will be used. If the failure is not an instance of the failure type, the specified recovery will not be called and the returned Promise must be failed with the failure of this Promise. Must not be null.
failureType
)

Recover from a failure of this Promise with a recovery value if the failure is an instance of a failure type.

public Promise<T>

Returns:

A Promise that resolves with the value of this Promise or recovers from the failure of this Promise.
recoverWith
(Function<Promise<?>, Promise<? extends T>>
If this Promise resolves with a failure, the specified Function is called to produce a recovery Promise to be used to resolve the returned Promise. Must not be null.
recovery
)

Recover from a failure of this Promise with a recovery Promise.

public Promise<T>

Returns:

A Promise that resolves with the value of this Promise or recovers from the failure of this Promise if the failure is an instance of the specified failure type.
recoverWith
(Function<Promise<?>, Promise<? extends T>>
If this Promise resolves with a failure and the failure is an instance of the specified failure type, the specified Function is called to produce a recovery Promise to be used to resolve the returned Promise. Must not be null.
recovery
,
Class<?>
The type of failure for which this recovery will be used. If the failure is not an instance of the failure type, the specified recovery will not be called and the returned Promise must be failed with the failure of this Promise. Must not be null.
failureType
)

Recover from a failure of this Promise with a recovery Promise if the failure is an instance of a failure type.

public <
The value type associated with the returned Promise.
R
>
Promise<R>

Returns:

A new Promise which is chained to this Promise. The returned Promise must be resolved when this Promise is resolved after the specified Success or Failure callback, if any, is executed.
then
(Success<? super T, ? extends R>
The Success callback to be called when this Promise is successfully resolved. May be null if no Success callback is required. In this case, the returned Promise must be resolved with the value null when this Promise is successfully resolved.
success
,
Failure
The Failure callback to be called when this Promise is resolved with a failure. May be null if no Failure callback is required.
failure
)

Chain a new Promise to this Promise with Success and Failure callbacks.

public <
The value type associated with the returned Promise.
R
>
Promise<R>

Returns:

A new Promise which is chained to this Promise. The returned Promise must be resolved when this Promise is resolved after the specified Success, if any, is executed.
then
(Success<? super T, ? extends R>
The Success callback to be called when this Promise is successfully resolved. May be null if no Success callback is required. In this case, the returned Promise must be resolved with the value null when this Promise is successfully resolved.
success
)

Chain a new Promise to this Promise with a Success callback.

public Promise<T>

Returns:

A new Promise which is chained to this Promise. The returned Promise must be resolved when this Promise is resolved after the specified Consumer is executed.
thenAccept
(Consumer<? super T>
The Consumer callback that receives the value of this Promise. Must not be null.
consumer
)

Chain a new Promise to this Promise with a Consumer callback that receives the value of this Promise when it is successfully resolved.

public Promise<T>

Returns:

A Promise that is resolved when either this Promise is resolved or the specified timeout is reached.
timeout
(long
The time to wait in milliseconds. Zero and negative time is treated as an immediate timeout.
milliseconds
)

Time out the resolution of this Promise.

public CompletionStage<T>

Returns:

A new CompletionStage that will be resolved with the result of this Promise.
toCompletionStage
()

Returns a new CompletionStage that will be resolved with the result of this Promise.

Method Detail

delayback to summary
public Promise<T> delay(long milliseconds)

Delay after the resolution of this Promise.

Once this Promise is resolved, resolve the returned Promise with this Promise after the specified delay.

Parameters
milliseconds:long

The time to delay in milliseconds. Zero and negative time is treated as no delay.

Returns:Promise<T>

A Promise that is resolved with this Promise after this Promise is resolved and the specified delay has elapsed.

Since
1.1
fallbackToback to summary
public Promise<T> fallbackTo(Promise<? extends T> fallback)

Fall back to the value of the specified Promise if this Promise fails.

If this Promise is successfully resolved, the returned Promise must be resolved with the value of this Promise.

If this Promise is resolved with a failure, the successful result of the specified Promise is used to resolve the returned Promise. If the specified Promise is resolved with a failure, the returned Promise must be failed with the failure of this Promise rather than the failure of the specified Promise.

This method may be called at any time including before and after this Promise has been resolved.

Parameters
fallback:Promise<? extends T>

The Promise whose value must be used to resolve the returned Promise if this Promise resolves with a failure. Must not be null.

Returns:Promise<T>

A Promise that returns the value of this Promise or falls back to the value of the specified Promise.

fallbackToback to summary
public Promise<T> fallbackTo(Promise<? extends T> fallback, Class<?> failureType)

Fall back to the value of the specified Promise if this Promise fails and the failure is an instance of a failure type.

If this Promise is successfully resolved, the returned Promise must be resolved with the value of this Promise.

If this Promise is resolved with a failure and the failure is an instance of the specified failure type, the successful result of the specified Promise is used to resolve the returned Promise. If the specified Promise is resolved with a failure, the returned Promise must be failed with the failure of this Promise rather than the failure of the specified Promise.

If this Promise is resolved with a failure and the failure is not an instance of the specified failure type, the returned Promise must be failed with the failure of this Promise.

This method may be called at any time including before and after this Promise has been resolved.

Parameters
fallback:Promise<? extends T>

The Promise whose value must be used to resolve the returned Promise if this Promise resolves with a failure and the failure is an instance of the specified failure type. Must not be null.

failureType:Class<?>

The type of failure for which this recovery will be used. If the failure is not an instance of the failure type, the specified recovery will not be called and the returned Promise must be failed with the failure of this Promise. Must not be null.

Returns:Promise<T>

A Promise that returns the value of this Promise or falls back to the value of the specified Promise if the failure is an instance of the specified failure type.

Since
1.3
filterback to summary
public Promise<T> filter(Predicate<? super T> predicate)

Filter the value of this Promise.

If this Promise is successfully resolved, the returned Promise must either be resolved with the value of this Promise, if the specified Predicate accepts that value, or failed with a NoSuchElementException, if the specified Predicate does not accept that value. If the specified Predicate throws an exception, the returned Promise must be failed with the exception.

If this Promise is resolved with a failure, the returned Promise must be failed with that failure.

This method may be called at any time including before and after this Promise has been resolved.

Parameters
predicate:Predicate<? super T>

The Predicate to evaluate the value of this Promise. Must not be null.

Returns:Promise<T>

A Promise that filters the value of this Promise.

flatMapback to summary
public <R> Promise<R> flatMap(Function<? super T, Promise<? extends R>> mapper)

FlatMap the value of this Promise.

If this Promise is successfully resolved, the returned Promise must be resolved with the Promise from the specified Function as applied to the value of this Promise. If the specified Function throws an exception, the returned Promise must be failed with the exception.

If this Promise is resolved with a failure, the returned Promise must be failed with that failure.

This method may be called at any time including before and after this Promise has been resolved.

Parameters
<R>
The value type associated with the returned Promise.
mapper:Function<? super T, Promise<? extends R>>

The Function that must flatMap the value of this Promise to a Promise that must be used to resolve the returned Promise. Must not be null.

Returns:Promise<R>

A Promise that returns the value of this Promise as mapped by the specified Function.

getFailureback to summary
public Throwable getFailure() throws InterruptedException

Returns the failure of this Promise.

If this Promise is not resolved, this method must block and wait for this Promise to be resolved before completing.

If this Promise was resolved with a failure, this method returns with the failure of this Promise. If this Promise was successfully resolved, this method must return null.

Returns:Throwable

The failure of this resolved Promise or null if this Promise was successfully resolved.

Exceptions
InterruptedException:
If the current thread was interrupted while waiting.
getValueback to summary
public T getValue() throws InvocationTargetException, InterruptedException

Returns the value of this Promise.

If this Promise is not resolved, this method must block and wait for this Promise to be resolved before completing.

If this Promise was successfully resolved, this method returns with the value of this Promise. If this Promise was resolved with a failure, this method must throw an InvocationTargetException with the failure exception as the cause.

Returns:T

The value of this resolved Promise.

Exceptions
InvocationTargetException:
If this Promise was resolved with a failure. The cause of the InvocationTargetException is the failure exception.
InterruptedException:
If the current thread was interrupted while waiting.
isDoneback to summary
public boolean isDone()

Returns whether this Promise has been resolved.

This Promise may be successfully resolved or resolved with a failure.

Returns:boolean

true if this Promise was resolved either successfully or with a failure; false if this Promise is unresolved.

mapback to summary
public <R> Promise<R> map(Function<? super T, ? extends R> mapper)

Map the value of this Promise.

If this Promise is successfully resolved, the returned Promise must be resolved with the value of specified Function as applied to the value of this Promise. If the specified Function throws an exception, the returned Promise must be failed with the exception.

If this Promise is resolved with a failure, the returned Promise must be failed with that failure.

This method may be called at any time including before and after this Promise has been resolved.

Parameters
<R>
The value type associated with the returned Promise.
mapper:Function<? super T, ? extends R>

The Function that must map the value of this Promise to the value that must be used to resolve the returned Promise. Must not be null.

Returns:Promise<R>

A Promise that returns the value of this Promise as mapped by the specified Function.

onFailureback to summary
public Promise<T> onFailure(Consumer<? super Throwable> failure)

Register a callback to be called with the failure for this Promise when this Promise is resolved with a failure. The callback will not be called if this Promise is resolved successfully.

This method may be called at any time including before and after this Promise has been resolved.

Resolving this Promise happens-before any registered callback is called. That is, in a registered callback, isDone() must return true and getValue() and getFailure() must not block.

A callback may be called on a different thread than the thread which registered the callback. So the callback must be thread safe but can rely upon that the registration of the callback happens-before the registered callback is called.

Parameters
failure:Consumer<? super Throwable>

The Consumer callback that receives the failure of this Promise. Must not be null.

Returns:Promise<T>

This Promise.

Since
1.1
onFailureback to summary
public <F> Promise<T> onFailure(Consumer<? super F> failure, Class<? extends F> failureType)

Register a callback to be called with the failure for this Promise when this Promise is resolved with a failure of a failure type. The callback will not be called if this Promise is resolved successfully or if the failure is not an instance of the specified failure type.

This method may be called at any time including before and after this Promise has been resolved.

Resolving this Promise happens-before any registered callback is called. That is, in a registered callback, isDone() must return true and getValue() and getFailure() must not block.

A callback may be called on a different thread than the thread which registered the callback. So the callback must be thread safe but can rely upon that the registration of the callback happens-before the registered callback is called.

Parameters
<F>
The failure type.
failure:Consumer<? super F>

The Consumer callback that receives the failure of this Promise if the failure is an instance of the specified failure type. Must not be null.

failureType:Class<? extends F>

The type of failure for which this callback will be called. If the failure is not an instance of the specified failure type, the specified callback will not be called. Must not be null.

Returns:Promise<T>

This Promise.

Since
1.3
onResolveback to summary
public Promise<T> onResolve(Runnable callback)

Register a callback to be called when this Promise is resolved.

The specified callback is called when this Promise is resolved either successfully or with a failure.

This method may be called at any time including before and after this Promise has been resolved.

Resolving this Promise happens-before any registered callback is called. That is, in a registered callback, isDone() must return true and getValue() and getFailure() must not block.

A callback may be called on a different thread than the thread which registered the callback. So the callback must be thread safe but can rely upon that the registration of the callback happens-before the registered callback is called.

Parameters
callback:Runnable

The callback to be called when this Promise is resolved. Must not be null.

Returns:Promise<T>

This Promise.

onSuccessback to summary
public Promise<T> onSuccess(Consumer<? super T> success)

Register a callback to be called with the result of this Promise when this Promise is resolved successfully. The callback will not be called if this Promise is resolved with a failure.

This method may be called at any time including before and after this Promise has been resolved.

Resolving this Promise happens-before any registered callback is called. That is, in a registered callback, isDone() must return true and getValue() and getFailure() must not block.

A callback may be called on a different thread than the thread which registered the callback. So the callback must be thread safe but can rely upon that the registration of the callback happens-before the registered callback is called.

Parameters
success:Consumer<? super T>

The Consumer callback that receives the value of this Promise. Must not be null.

Returns:Promise<T>

This Promise.

Since
1.1
recoverback to summary
public Promise<T> recover(Function<Promise<?>, ? extends T> recovery)

Recover from a failure of this Promise with a recovery value.

If this Promise is successfully resolved, the returned Promise must be resolved with the value of this Promise.

If this Promise is resolved with a failure, the specified Function is applied to this Promise to produce a recovery value.

  • If the recovery value is not null, the returned Promise must be resolved with the recovery value.
  • If the recovery value is null, the returned Promise must be failed with the failure of this Promise.
  • If the specified Function throws an exception, the returned Promise must be failed with that exception.

To recover from a failure of this Promise with a recovery value of null, the recoverWith(Function) method must be used. The specified Function for recoverWith(Function) can return Promises.resolved(null) to supply the desired null value.

This method may be called at any time including before and after this Promise has been resolved.

Parameters
recovery:Function<Promise<?>, ? extends T>

If this Promise resolves with a failure, the specified Function is called to produce a recovery value to be used to resolve the returned Promise. Must not be null.

Returns:Promise<T>

A Promise that resolves with the value of this Promise or recovers from the failure of this Promise.

recoverback to summary
public Promise<T> recover(Function<Promise<?>, ? extends T> recovery, Class<?> failureType)

Recover from a failure of this Promise with a recovery value if the failure is an instance of a failure type.

If this Promise is successfully resolved, the returned Promise must be resolved with the value of this Promise.

If this Promise is resolved with a failure and the failure is not an instance of the specified failure type, the returned Promise must be failed with the failure of this Promise.

If this Promise is resolved with a failure and the failure is an instance of the specified failure type, the specified Function is applied to this Promise to produce a recovery value.

  • If the recovery value is not null, the returned Promise must be resolved with the recovery value.
  • If the recovery value is null, the returned Promise must be failed with the failure of this Promise.
  • If the specified Function throws an exception, the returned Promise must be failed with that exception.

To recover from a failure of this Promise with a recovery value of null, the recoverWith(Function, Class) method must be used. The specified Function for recoverWith(Function, Class) can return Promises.resolved(null) to supply the desired null value.

This method may be called at any time including before and after this Promise has been resolved.

Parameters
recovery:Function<Promise<?>, ? extends T>

If this Promise resolves with a failure and the failure is an instance of the specified failure type, the specified Function is called to produce a recovery value to be used to resolve the returned Promise. Must not be null.

failureType:Class<?>

The type of failure for which the specified recovery will be used. If the failure is not an instance of the failure type, the specified recovery will not be called and the returned Promise must be failed with the failure of this Promise. Must not be null.

Returns:Promise<T>

A Promise that resolves with the value of this Promise or recovers from the failure of this Promise if the failure is an instance of the specified failure type.

Since
1.3
recoverWithback to summary
public Promise<T> recoverWith(Function<Promise<?>, Promise<? extends T>> recovery)

Recover from a failure of this Promise with a recovery Promise.

If this Promise is successfully resolved, the returned Promise must be resolved with the value of this Promise.

If this Promise is resolved with a failure, the specified Function is applied to this Promise to produce a recovery Promise.

  • If the recovery Promise is not null, the returned Promise must be resolved with the recovery Promise.
  • If the recovery Promise is null, the returned Promise must be failed with the failure of this Promise.
  • If the specified Function throws an exception, the returned Promise must be failed with that exception.

This method may be called at any time including before and after this Promise has been resolved.

Parameters
recovery:Function<Promise<?>, Promise<? extends T>>

If this Promise resolves with a failure, the specified Function is called to produce a recovery Promise to be used to resolve the returned Promise. Must not be null.

Returns:Promise<T>

A Promise that resolves with the value of this Promise or recovers from the failure of this Promise.

recoverWithback to summary
public Promise<T> recoverWith(Function<Promise<?>, Promise<? extends T>> recovery, Class<?> failureType)

Recover from a failure of this Promise with a recovery Promise if the failure is an instance of a failure type.

If this Promise is successfully resolved, the returned Promise must be resolved with the value of this Promise.

If this Promise is resolved with a failure and the failure is not an instance of the specified failure type, the returned Promise must be failed with the failure of this Promise.

If this Promise is resolved with a failure and the failure is an instance of the specified failure type, the specified Function is applied to this Promise to produce a recovery Promise.

  • If the recovery Promise is not null, the returned Promise must be resolved with the recovery Promise.
  • If the recovery Promise is null, the returned Promise must be failed with the failure of this Promise.
  • If the specified Function throws an exception, the returned Promise must be failed with that exception.

This method may be called at any time including before and after this Promise has been resolved.

Parameters
recovery:Function<Promise<?>, Promise<? extends T>>

If this Promise resolves with a failure and the failure is an instance of the specified failure type, the specified Function is called to produce a recovery Promise to be used to resolve the returned Promise. Must not be null.

failureType:Class<?>

The type of failure for which this recovery will be used. If the failure is not an instance of the failure type, the specified recovery will not be called and the returned Promise must be failed with the failure of this Promise. Must not be null.

Returns:Promise<T>

A Promise that resolves with the value of this Promise or recovers from the failure of this Promise if the failure is an instance of the specified failure type.

Since
1.3
thenback to summary
public <R> Promise<R> then(Success<? super T, ? extends R> success, Failure failure)

Chain a new Promise to this Promise with Success and Failure callbacks.

The specified Success callback is called when this Promise is successfully resolved and the specified Failure callback is called when this Promise is resolved with a failure.

This method returns a new Promise which is chained to this Promise. The returned Promise must be resolved when this Promise is resolved after the specified Success or Failure callback is executed. The result of the executed callback must be used to resolve the returned Promise. Multiple calls to this method can be used to create a chain of promises which are resolved in sequence.

If this Promise is successfully resolved, the Success callback is executed and the result Promise, if any, or thrown exception is used to resolve the returned Promise from this method. If this Promise is resolved with a failure, the Failure callback is executed and the returned Promise from this method is failed.

This method may be called at any time including before and after this Promise has been resolved.

Resolving this Promise happens-before any registered callback is called. That is, in a registered callback, isDone() must return true and getValue() and getFailure() must not block.

A callback may be called on a different thread than the thread which registered the callback. So the callback must be thread safe but can rely upon that the registration of the callback happens-before the registered callback is called.

Parameters
<R>
The value type associated with the returned Promise.
success:Success<? super T, ? extends R>

The Success callback to be called when this Promise is successfully resolved. May be null if no Success callback is required. In this case, the returned Promise must be resolved with the value null when this Promise is successfully resolved.

failure:Failure

The Failure callback to be called when this Promise is resolved with a failure. May be null if no Failure callback is required.

Returns:Promise<R>

A new Promise which is chained to this Promise. The returned Promise must be resolved when this Promise is resolved after the specified Success or Failure callback, if any, is executed.

thenback to summary
public <R> Promise<R> then(Success<? super T, ? extends R> success)

Chain a new Promise to this Promise with a Success callback.

This method performs the same function as calling then(Success, Failure) with the specified Success callback and null for the Failure callback.

Parameters
<R>
The value type associated with the returned Promise.
success:Success<? super T, ? extends R>

The Success callback to be called when this Promise is successfully resolved. May be null if no Success callback is required. In this case, the returned Promise must be resolved with the value null when this Promise is successfully resolved.

Returns:Promise<R>

A new Promise which is chained to this Promise. The returned Promise must be resolved when this Promise is resolved after the specified Success, if any, is executed.

See Also
then(Success, Failure)
thenAcceptback to summary
public Promise<T> thenAccept(Consumer<? super T> consumer)

Chain a new Promise to this Promise with a Consumer callback that receives the value of this Promise when it is successfully resolved.

The specified Consumer is called when this Promise is resolved successfully.

This method returns a new Promise which is chained to this Promise. The returned Promise must be resolved when this Promise is resolved after the specified callback is executed. If the callback throws an exception, the returned Promise is failed with that exception. Otherwise the returned Promise is resolved with the success value from this Promise.

This method may be called at any time including before and after this Promise has been resolved.

Resolving this Promise happens-before any registered callback is called. That is, in a registered callback, isDone() must return true and getValue() and getFailure() must not block.

A callback may be called on a different thread than the thread which registered the callback. So the callback must be thread safe but can rely upon that the registration of the callback happens-before the registered callback is called.

Parameters
consumer:Consumer<? super T>

The Consumer callback that receives the value of this Promise. Must not be null.

Returns:Promise<T>

A new Promise which is chained to this Promise. The returned Promise must be resolved when this Promise is resolved after the specified Consumer is executed.

Since
1.1
timeoutback to summary
public Promise<T> timeout(long milliseconds)

Time out the resolution of this Promise.

If this Promise is successfully resolved before the timeout, the returned Promise is resolved with the value of this Promise. If this Promise is resolved with a failure before the timeout, the returned Promise is resolved with the failure of this Promise. If the timeout is reached before this Promise is resolved, the returned Promise is failed with a TimeoutException.

Parameters
milliseconds:long

The time to wait in milliseconds. Zero and negative time is treated as an immediate timeout.

Returns:Promise<T>

A Promise that is resolved when either this Promise is resolved or the specified timeout is reached.

Since
1.1
toCompletionStageback to summary
public CompletionStage<T> toCompletionStage()

Returns a new CompletionStage that will be resolved with the result of this Promise.

Returns:CompletionStage<T>

A new CompletionStage that will be resolved with the result of this Promise.

Since
1.2