# Class webdriver.promise.Deferred.`<T>`

code »

    webdriver.promise.Promise.<(T|null)>
      └ webdriver.promise.Deferred

All implemented interfaces:
  `webdriver.promise.Thenable.<(T|null)>`

Represents a value that will be resolved at some point in the future. This class represents the protected "producer" half of a Promise - each Deferred has a `promise` property that may be returned to consumers for registering callbacks, reserving the ability to resolve the deferred to the producer.

If this Deferred is rejected and there are no listeners registered before the next turn of the event loop, the rejection will be passed to the `webdriver.promise.ControlFlow` as an unhandled failure.

If this Deferred is cancelled, the cancellation reason will be forward to the Deferred's canceller function (if provided). The canceller may return a truth-y value to override the reason provided for rejection.

## Constructor

webdriver.promise.Deferred ( opt_flow )

Parameters
opt_flow: `webdriver.promise.ControlFlow=` The control flow this instance was created under. This should only be provided during unit tests.

## Enumerations

webdriver.promise.Deferred.State_ The three states a `webdriver.promise.Deferred` object may be in.

Show:Public Protected Private

## Type Definitions

code »webdriver.promise.Deferred.Listener_ : `{callback: (Function|undefined), errback: (Function|undefined), fulfill: function(*), reject: function(*)}`
Type definition for a listener registered on a Deferred object.

## Instance Methods

### Defined in `webdriver.promise.Deferred`

code »errback ( opt_error )

Rejects this promise. If the error is itself a promise, this instance will be chained to it and be rejected with the error's resolved value.

Parameters
opt_error: `*=` The rejection reason, typically either a `Error` or a `string`.

code »fulfill ( opt_value )

Resolves this promise with the given value. If the value is itself a promise and not a reference to this deferred, this instance will wait for it before resolving.

Parameters
opt_value: `T=` The fulfilled value.

code »reject ( opt_error )

Rejects this promise. If the error is itself a promise, this instance will be chained to it and be rejected with the error's resolved value.

Parameters
opt_error: `*=` The rejection reason, typically either a `Error` or a `string`.

code »removeAll ( )

Removes all of the listeners previously registered on this deferred.

Throws
`Error` If this deferred has already been resolved.

### Defined in `webdriver.promise.Promise.<(T|null)>`

code »cancel ( reason )

Parameters
reason

code »isPending ( ) ⇒ `boolean`
code »then ( opt_callback, opt_errback )

Parameters
opt_callback opt_errback

code »thenCatch ( errback )

Parameters
errback

code »thenFinally ( callback )

Parameters
callback

## Instance Properties

### Defined in `webdriver.promise.Deferred`

code »parent_ : `webdriver.promise.Deferred`

The deferred this instance is chained from, if any.

code »webdriver.promise.Deferred.prototype.promise : `webdriver.promise.Promise.`

Represents the eventual value of a completed operation. Each promise may be in one of three states: pending, resolved, or rejected. Each promise starts in the pending state and may make a single transition to either a fulfilled or rejected state, at which point the promise is considered resolved.

## Static Properties

code »webdriver.promise.Deferred.superClass_ : `webdriver.promise.Promise.prototype`