-
- var errorDeferred = jQuery._Deferred(),
- deferred = jQuery._Deferred(),
- successCancel = deferred.cancel;
-
- // Add errorDeferred methods and redefine cancel
- jQuery.extend( deferred , {
-
- fail: errorDeferred.then,
- fireReject: errorDeferred.fire,
- reject: errorDeferred.resolve,
- isRejected: errorDeferred.isResolved,
- // Get a promise for this deferred
- // If obj is provided, the promise aspect is added to the object
- promise: function( obj ) {
- obj = obj || {};
- for ( var i in { then:1 , fail:1 , isResolved:1 , isRejected:1 , promise:1 } ) {
- obj[ i ] = deferred[ i ];
+ var deferred = jQuery._Deferred(),
+ failDeferred = jQuery._Deferred(),
+ promise;
+ // Add errorDeferred methods, then and promise
+ jQuery.extend( deferred, {
+ then: function( doneCallbacks, failCallbacks ) {
+ deferred.done( doneCallbacks ).fail( failCallbacks );
+ return this;
+ },
+ fail: failDeferred.done,
+ rejectWith: failDeferred.resolveWith,
+ reject: failDeferred.resolve,
+ isRejected: failDeferred.isResolved,
+ // Get a promise for this deferred
+ // If obj is provided, the promise aspect is added to the object
+ promise: function( obj , i /* internal */ ) {
+ if ( obj == null ) {
+ if ( promise ) {
+ return promise;