// Attach deferreds
deferred.promise( jXHR );
- jXHR.success = jXHR.then;
+ jXHR.success = jXHR.complete;
jXHR.error = jXHR.fail;
- jXHR.complete = completeDeferred.then;
+ jXHR.complete = completeDeferred.complete;
// Remove hash character (#7531: and string promotion)
s.url = ( "" + s.url ).replace( rhash , "" );
jQuery.bindReady();
// Change ready & apply
- return ( jQuery.fn.ready = readyList.then ).apply( this , arguments );
+ return ( jQuery.fn.ready = readyList.complete ).apply( this , arguments );
},
eq: function( i ) {
// the deferred itself
deferred = {
- // then( f1, f2, ...)
- then: function () {
+ // complete( f1, f2, ...)
+ complete: function () {
if ( ! cancelled ) {
elem = args[ i ];
type = jQuery.type( elem );
if ( type === "array" ) {
- deferred.then.apply( deferred , elem );
+ deferred.complete.apply( deferred , elem );
} else if ( type === "function" ) {
callbacks.push( elem );
}
// Add errorDeferred methods and redefine cancel
jQuery.extend( deferred , {
- fail: failDeferred.then,
- fireReject: failDeferred.fire,
- 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 ) {
- obj = obj || {};
- jQuery.each( "then fail isResolved isRejected".split( " " ) , function( _ , method ) {
- obj[ method ] = deferred[ method ];
- });
- obj.promise = function() {
- return obj;
- };
+ then: function( completeCallbacks , failCallbacks ) {
+ deferred.complete( completeCallbacks ).fail( failCallbacks );
+ return this;
+ },
+ fail: failDeferred.complete,
+ fireReject: failDeferred.fire,
+ 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 ) {
+ obj = obj || {};
+ jQuery.each( "then complete fail isResolved isRejected".split( " " ) , function( _ , method ) {
+ obj[ method ] = deferred[ method ];
+ });
+ obj.promise = function() {
return obj;
- }
+ };
+ return obj;
+ }
} );
// Make sure only one callback list will be used
- deferred.then( failDeferred.cancel ).fail( deferred.cancel );
+ deferred.then( failDeferred.cancel , deferred.cancel );
// Unexpose cancel
delete deferred.cancel;
test = false;
- deferred.then( function( value ) {
+ deferred.complete( function( value ) {
equals( value , "value" , "Test pre-resolve callback" );
test = true;
} );
test = false;
- deferred.then( function( value ) {
+ deferred.complete( function( value ) {
equals( value , "value" , "Test post-resolve callback" );
test = true;
} );
test = true;
- deferred.then( function() {
+ deferred.complete( function() {
ok( false , "Cancel was ignored" );
test = false;
} );
deferred = jQuery._Deferred().resolve();
try {
- deferred.then( function() {
+ deferred.complete( function() {
throw "Error";
} , function() {
ok( true , "Test deferred do not cancel on exception" );
} );
} catch( e ) {
strictEqual( e , "Error" , "Test deferred propagates exceptions");
- deferred.then();
+ deferred.complete();
}
test = "";
- deferred = jQuery._Deferred().then( function() {
+ deferred = jQuery._Deferred().complete( function() {
test += "A";
} ).resolve();
- strictEqual( test , "AB" , "Test multiple then parameters" );
+ strictEqual( test , "AB" , "Test multiple complete parameters" );
test = "";
- deferred.then( function() {
+ deferred.complete( function() {
- deferred.then( function() {
+ deferred.complete( function() {
test += "C";
test += "B";
} );
- strictEqual( test , "ABC" , "Test then callbacks order" );
+ strictEqual( test , "ABC" , "Test complete callbacks order" );
deferred = jQuery._Deferred();
- deferred.fire( jQuery , [ document ] ).then( function( doc ) {
+ deferred.fire( jQuery , [ document ] ).complete( function( doc ) {
ok( this === jQuery && arguments.length === 1 && doc === document , "Test fire context & args" );
});
});
jQuery.Deferred().resolve().then( function() {
ok( true , "Success on resolve" );
- }).fail( function() {
+ }, function() {
ok( false , "Error on resolve" );
});
jQuery.Deferred().reject().then( function() {
ok( false , "Success on reject" );
- }).fail( function() {
+ }, function() {
ok( true , "Error on reject" );
});
});
}) ).then( function( value ) {
strictEqual( value , 1 , "Function executed" + ( i > 1 ? " only once" : "" ) );
cache = value;
- }).fail( function() {
+ }, function() {
ok( false , "Fail called" );
});
}