Represents the result of an action that may, or may not, have occurred yet.

- `Anything`
  - `Object`
    - `Basic` ...and other supertypes
      - `Future`

- `Future`
  - `Basic`
    - `Identifiable`
    - `Object`
      - `Anything`

- `Future`
  - `CompositeFuture`

Initializer
`Future(Future<out Object> unknown)`

Inherited Attributes
Attributes inherited from: `Object` `hash`, `string`

Methods
`cause` | `shared default Throwable cause()` A Throwable describing failure. This will be null if the operation succeeded.
`complete` | `shared default void complete()` Set a null result. Any handler will be called, if there is one, and the future will be marked as completed.
`complete` | `shared default void complete(T result)` Set the result. Any handler will be called, if there is one, and the future will be marked as completed. Parameters: `result` the result
`completer` | `shared default Anything(Throwable|T) completer()`
`compose` | `shared default Future<U?> compose<U>(Future<U?>(T) mapper)` Compose this future with a `mapper` function. When this future (the one on which `compose` is called) succeeds, the `mapper` will be called with the completed value and this mapper returns another future object. This returned future completion will complete the future returned by this method call. If the `mapper` throws an exception, the returned future will be failed with this exception. When this future fails, the failure will be propagated to the returned future and the `mapper` will not be called. Parameters: `mapper` the mapper function
`compose` | `shared default Future<U?> compose<U>(Anything(T) handler, Future<U?> next)` Compose this future with a provided `next` future. When this (the one on which `compose` is called) future succeeds, the `handler` will be called with the completed value, this handler should complete the next future. If the `handler` throws an exception, the returned future will be failed with this exception. When this future fails, the failure will be propagated to the `next` future and the `handler` will not be called. Parameters: `handler` the handler `next` the next future
`fail` | `shared default void fail(String failureMessage)` Try to set the failure. When it happens, any handler will be called, if there is one, and the future will be marked as completed. Parameters: `failureMessage` the failure message
`fail` | `shared default void fail(Throwable cause)` Set the failure. Any handler will be called, if there is one, and the future will be marked as completed. Parameters: `cause` the failure cause
`failed` | `shared default Boolean failed()` Did it fail?
`isComplete` | `shared default Boolean isComplete()` Has the future completed? It's completed if it's either succeeded or failed.
`map` | `shared default Future<U?> map<U>(U?(T) mapper)` Apply a `mapper` function on this future. When this future succeeds, the `mapper` will be called with the completed value and this mapper returns a value. This value will complete the future returned by this method call. If the `mapper` throws an exception, the returned future will be failed with this exception. When this future fails, the failure will be propagated to the returned future and the `mapper` will not be called. Parameters: `mapper` the mapper function
`map` | `shared default Future<V?> map<V>(V? value)` Map the result of a future to a specific `value`. When this future succeeds, this `value` will complete the future returned by this method call. When this future fails, the failure will be propagated to the returned future. Parameters: `value` the value that eventually completes the mapped future
`mapEmpty` | `shared default Future<V?> mapEmpty<V>()` Map the result of a future to `null`. This is a conveniency for `future.map((T) null)` or `future.map((Void) null)`. When this future succeeds, `null` will complete the future returned by this method call. When this future fails, the failure will be propagated to the returned future.
`otherwise` | `shared default Future<T> otherwise(T value)` Map the failure of a future to a specific `value`. When this future fails, this `value` will complete the future returned by this method call. When this future succeeds, the result will be propagated to the returned future. Parameters: `value` the value that eventually completes the mapped future
`otherwise` | `shared default Future<T> otherwise(T(Throwable) mapper)` Apply a `mapper` function on this future. When this future fails, the `mapper` will be called with the completed value and this mapper returns a value. This value will complete the future returned by this method call. If the `mapper` throws an exception, the returned future will be failed with this exception. When this future succeeds, the result will be propagated to the returned future and the `mapper` will not be called. Parameters: `mapper` the mapper function
`otherwiseEmpty` | `shared default Future<T> otherwiseEmpty()` Map the failure of a future to `null`. This is a convenience for `future.otherwise((T) null)`. When this future fails, the `null` value will complete the future returned by this method call. When this future succeeds, the result will be propagated to the returned future.
`recover` | `shared default Future<T> recover(Future<T>(Throwable) mapper)` Handles a failure of this Future by returning the result of another Future. If the mapper fails, then the returned future will be failed with this failure. Parameters: `mapper` A function which takes the exception of a failure and returns a new future.
`result` | `shared default T result()` The result of the operation. This will be null if the operation failed.
`setHandler` | `shared default Future<T> setHandler(Anything(Throwable|T) handler)` Set a handler for the result. If the future has already been completed it will be called immediately. Otherwise it will be called when the future is completed. Parameters: `handler` the Handler that will be called with the result
`succeeded` | `shared default Boolean succeeded()` Did it succeed?
`tryComplete` | `shared default Boolean tryComplete()` Try to set the result. When it happens, any handler will be called, if there is one, and the future will be marked as completed.
`tryComplete` | `shared default Boolean tryComplete(T result)` Set the failure. Any handler will be called, if there is one, and the future will be marked as completed. Parameters: `result` the result
`tryFail` | `shared default Boolean tryFail(String failureMessage)` Try to set the failure. When it happens, any handler will be called, if there is one, and the future will be marked as completed. Parameters: `failureMessage` the failure message
`tryFail` | `shared default Boolean tryFail(Throwable cause)` Try to set the failure. When it happens, any handler will be called, if there is one, and the future will be marked as completed. Parameters: `cause` the failure cause

Inherited Methods
Methods inherited from: `Object` `equals`