Class webdriver.promise.Deferred
code »webdriver.promise.Promise
└ 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
code »addBoth ( callback, opt_self ) ⇒ !webdriver.promise.Promise
Deprecated: Use #thenFinally()
instead.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.
!webdriver.promise.Promise
#thenFinally()
instead.Parameters |
---|
Returns |
|
code »addCallback ( callback, opt_self ) ⇒ !webdriver.promise.Promise
Deprecated: Use #then()
instead.Registers a function to be invoked when this promise is successfully
resolved. This function is provided for backwards compatibility with the
Dojo Deferred API.
!webdriver.promise.Promise
#then()
instead.Parameters |
---|
Returns |
|
code »addCallbacks ( callback, errback, opt_self ) ⇒ !webdriver.promise.Promise
Deprecated: Use #then()
instead.An alias for 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.
!webdriver.promise.Promise
#then()
instead.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 |
---|
|
Returns |
|
code »addErrback ( errback, opt_self ) ⇒ !webdriver.promise.Promise
Deprecated: Use #thenCatch()
instead.Registers a function to be invoked when this promise is rejected.
This function is provided for backwards compatibility with the
Dojo Deferred API.
!webdriver.promise.Promise
#thenCatch()
instead.Parameters |
---|
Returns |
|
code »then ( opt_callback, opt_errback ) ⇒ !webdriver.promise.Promise
Registers listeners for when this instance is resolved. This function most
overridden by subtypes.
!webdriver.promise.Promise
Parameters |
---|
|
Returns |
|
code »thenCatch ( errback ) ⇒ !webdriver.promise.Promise
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);
});
!webdriver.promise.Promise
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 |
|
code »thenFinally ( callback ) ⇒ !webdriver.promise.Promise
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
});
!webdriver.promise.Promise
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 |
---|
|