# Class: Future

## vertx-js/future~ Future

#### new Future()

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

Source:
  - vertx-js/future.js, line 30

### Methods

#### cause() → {todo}

A Throwable describing failure. This will be null if the operation succeeded.

Source:
  - vertx-js/future.js, line 159

##### Returns:

the cause or null if the operation succeeded.

Type
  todo

#### complete(result)

Set the result. Any handler will be called, if there is one, and the future will be marked as completed.

##### Parameters:

Name | Type | Description
--- | --- | ---
`result` | Object | the result

Source:
  - vertx-js/future.js, line 82

#### completer() → {function}

Source:
  - vertx-js/future.js, line 273

##### Returns:

an handler completing this future

Type
  function

#### compose(handler, next) → {Future}

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:

Name | Type | Description
--- | --- | ---
`handler` | function | the handler
`next` | Future | the next future

Source:
  - vertx-js/future.js, line 210

##### Returns:

the next future, used for chaining

Type
  Future

#### fail(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:

Name | Type | Description
--- | --- | ---
`failureMessage` | string | the failure message

Source:
  - vertx-js/future.js, line 97

#### failed() → {boolean}

Did it fail?

Source:
  - vertx-js/future.js, line 187

##### Returns:

true if it failed or false otherwise

Type
  boolean

#### isComplete() → {boolean}

Has the future completed?

It's completed if it's either succeeded or failed.

Source:
  - vertx-js/future.js, line 45

##### Returns:

true if completed, false if not

Type
  boolean

#### map(value) → {Future}

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:

Name | Type | Description
--- | --- | ---
`value` | Object | the value that eventually completes the mapped future

Source:
  - vertx-js/future.js, line 235

##### Returns:

the mapped future

Type
  Future

#### mapEmpty() → {Future}

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.

Source:
  - vertx-js/future.js, line 260

##### Returns:

the mapped future

Type
  Future

#### otherwise(value) → {Future}

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:

Name | Type | Description
--- | --- | ---
`value` | Object | the value that eventually completes the mapped future

Source:
  - vertx-js/future.js, line 312

##### Returns:

the mapped future

Type
  Future

#### otherwiseEmpty() → {Future}

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.

Source:
  - vertx-js/future.js, line 337

##### Returns:

the mapped future

Type
  Future

#### recover(mapper) → {Future}

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:

Name | Type | Description
--- | --- | ---
`mapper` | todo | A function which takes the exception of a failure and returns a new future.

Source:
  - vertx-js/future.js, line 291

##### Returns:

A recovered future

Type
  Future

#### result() → {Object}

The result of the operation. This will be null if the operation failed.

Source:
  - vertx-js/future.js, line 145

##### Returns:

the result or null if the operation failed.

Type
  Object

#### setHandler(handler) → {Future}

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:

Name | Type | Description
--- | --- | ---
`handler` | function | the Handler that will be called with the result

Source:
  - vertx-js/future.js, line 62

##### Returns:

a reference to this, so it can be used fluently

Type
  Future

#### succeeded() → {boolean}

Did it succeed?

Source:
  - vertx-js/future.js, line 173

##### Returns:

true if it succeded or false otherwise

Type
  boolean

#### tryComplete(result) → {boolean}

Set the failure. Any handler will be called, if there is one, and the future will be marked as completed.

##### Parameters:

Name | Type | Description
--- | --- | ---
`result` | Object | the result

Source:
  - vertx-js/future.js, line 113

##### Returns:

false when the future is already completed

Type
  boolean

#### tryFail(failureMessage) → {boolean}

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:

Name | Type | Description
--- | --- | ---
`failureMessage` | string | the failure message

Source:
  - vertx-js/future.js, line 129

##### Returns:

false when the future is already completed

Type
  boolean