Class Deferred

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 {@code 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 {@link 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.

extends

{webdriver.promise.Promise}

Hierarchy

Index

Constructor methods

Properties

Methods

Constructor methods

constructor(opt_canceller?: any, opt_flow?: ControlFlow): Deferred

constructor

Parameters

  • opt_canceller?: any optional

    Function to call when cancelling the computation of this instance's value.

  • opt_flow?: ControlFlow optional

    The control flow this instance was created under. This should only be provided during unit tests.

Returns

Deferred

Properties

public promise: Promise

The consumer promise for this instance. Provides protected access to the callback registering functions.

type

{!webdriver.promise.Promise}

Methods

public addBoth(callback: (value: any) => any, opt_self?: any): Promise

Registers a function to be invoked when this promise is either rejected or resolved. This function is provided for backwards compatibility with the Dojo Deferred API.

Parameters

  • callback: (value: any) => any

    The function to call when this promise is either resolved or rejected. The function should expect a single argument: the resolved value or rejection error.

  • opt_self?: any optional

    The object which |this| should refer to when the function is invoked.

Returns

Promise

A new promise which will be resolved with the result of the invoked callback.

public addCallback(callback: (value: any) => any, opt_self?: any): Promise

Registers a function to be invoked when this promise is successfully resolved. This function is provided for backwards compatibility with the Dojo Deferred API.

Parameters

  • callback: (value: any) => any

    The function to call if this promise is successfully resolved. The function should expect a single argument: the promise's resolved value.

  • opt_self?: any optional

    The object which |this| should refer to when the function is invoked.

Returns

Promise

A new promise which will be resolved with the result of the invoked callback.

public addCallbacks(callback: (value: any) => any, errback: (error: any) => any, opt_self?: any): Promise

An alias for {@code webdriver.promise.Promise.prototype.then} that permits the scope of the invoked function to be specified. This function is provided for backwards compatibility with the Dojo Deferred API.

Parameters

  • callback: (value: any) => any

    The function to call if this promise is successfully resolved. The function should expect a single argument: the promise's resolved value.

  • errback: (error: any) => any

    The function to call if this promise is rejected. The function should expect a single argument: the rejection reason.

  • opt_self?: any optional

    The object which |this| should refer to when the function is invoked.

Returns

Promise

A new promise which will be resolved with the result of the invoked callback.

public addErrback(errback: (error: any) => any, opt_self?: any): Promise

Registers a function to be invoked when this promise is rejected. This function is provided for backwards compatibility with the Dojo Deferred API.

Parameters

  • errback: (error: any) => any

    The function to call if this promise is rejected. The function should expect a single argument: the rejection reason.

  • opt_self?: any optional

    The object which |this| should refer to when the function is invoked.

Returns

Promise

A new promise which will be resolved with the result of the invoked callback.

public cancel(opt_reason?: any)

Cancels the computation of this promise's value and flags the promise as a rejected value.

Parameters

  • opt_reason?: any optional

    The reason for cancelling this promise.

public errback(opt_error?: any)

Parameters

  • opt_error?: any optional

public fulfill(opt_value?: any)

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?: any optional

    The resolved value.

public isPending(): boolean

Returns

boolean

Whether this promise's value is still being computed.

public reject(opt_error?: any)

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?: any optional

    The rejection reason, typically either a {@code Error} or a {@code string}.

public removeAll()

Removes all of the listeners previously registered on this deferred.

throws

{Error} If this deferred has already been resolved.

public then(opt_callback?: (value: any) => any, opt_errback?: (error: any) => any): Promise

Registers listeners for when this instance is resolved. This function most overridden by subtypes.

Parameters

  • opt_callback?: (value: any) => any optional

    The function to call if this promise is successfully resolved. The function should expect a single argument: the promise's resolved value.

  • opt_errback?: (error: any) => any optional

    The function to call if this promise is rejected. The function should expect a single argument: the rejection reason.

Returns

Promise

A new promise which will be resolved with the result of the invoked callback.