Class webdriver.promise.Deferred.<T>
code »webdriver.promise.Promise.<(T|null)>
└ webdriver.promise.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 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
Parameters |
---|
|
Enumerations
|
Type Definitions
Instance Methods
Defined in webdriver.promise.Deferred
Defined in webdriver.promise.Promise.<(T|null)>
Registers listeners for when this instance is resolved. This function most
overridden by subtypes.
Parameters |
---|
|
Returns |
|
Registers a listener for when this promise is rejected. This is synonymous
with the catch
clause in a synchronous API:
// Synchronous API:
try {
doSynchronousWork();
} catch (ex) {
console.error(ex);
}
// Asynchronous promise API:
doAsynchronousWork().thenCatch(function(ex) {
console.error(ex);
});
catch
clause in a synchronous API:
// Synchronous API:
try {
doSynchronousWork();
} catch (ex) {
console.error(ex);
}
// Asynchronous promise API:
doAsynchronousWork().thenCatch(function(ex) {
console.error(ex);
});
Parameters |
---|
|
Returns |
|
Registers a listener to invoke when this promise is resolved, regardless
of whether the promise's value was successfully computed. This function
is synonymous with the finally
clause in a synchronous API:
// Synchronous API:
try {
doSynchronousWork();
} finally {
cleanUp();
}
// Asynchronous promise API:
doAsynchronousWork().thenFinally(cleanUp);
Note: similar to the finally
clause, if the registered
callback returns a rejected promise or throws an error, it will silently
replace the rejection error (if any) from this promise:
try {
throw Error('one');
} finally {
throw Error('two'); // Hides Error: one
}
webdriver.promise.rejected(Error('one'))
.thenFinally(function() {
throw Error('two'); // Hides Error: one
});
finally
clause in a synchronous API:
// Synchronous API:
try {
doSynchronousWork();
} finally {
cleanUp();
}
// Asynchronous promise API:
doAsynchronousWork().thenFinally(cleanUp);
try {
throw Error('one');
} finally {
throw Error('two'); // Hides Error: one
}
webdriver.promise.rejected(Error('one'))
.thenFinally(function() {
throw Error('two'); // Hides Error: one
});
Parameters |
---|
|
Returns |
|
Instance Properties
Defined in webdriver.promise.Deferred
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 failed state.
This class is based on the Promise/A proposal from CommonJS. Additional
functions are provided for API compatibility with Dojo Deferred objects.
webdriver.promise.Promise.