diff options
author | jaubourg <j@ubourg.net> | 2011-01-05 04:29:30 +0100 |
---|---|---|
committer | jaubourg <j@ubourg.net> | 2011-01-05 04:29:30 +0100 |
commit | cbf591152c9f61381e552c9a15bb7c339f1451a9 (patch) | |
tree | bc3519a7bc403d2232d4044cc4d5d165caaeed8f /src | |
parent | 4ab94a578ee7760c4e44bafa56139af82c40028b (diff) | |
download | jquery-cbf591152c9f61381e552c9a15bb7c339f1451a9.tar.gz jquery-cbf591152c9f61381e552c9a15bb7c339f1451a9.zip |
"then" renamed "complete" and new "then" method defined using "complete" and "fail" internally. The API is still symetrical (complete/fail), still promotes AOP but is also now Promise/A compliant. Changed unit tests and ajax module accordingly.
Diffstat (limited to 'src')
-rw-r--r-- | src/ajax.js | 4 | ||||
-rw-r--r-- | src/core.js | 44 |
2 files changed, 26 insertions, 22 deletions
diff --git a/src/ajax.js b/src/ajax.js index 86709005e..32f75f6eb 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -496,9 +496,9 @@ jQuery.extend({ // 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 , "" ); diff --git a/src/core.js b/src/core.js index 0211808c5..edd2c94d8 100644 --- a/src/core.js +++ b/src/core.js @@ -258,7 +258,7 @@ jQuery.fn = jQuery.prototype = { 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 ) { @@ -815,8 +815,8 @@ jQuery.extend({ // the deferred itself deferred = { - // then( f1, f2, ...) - then: function () { + // complete( f1, f2, ...) + complete: function () { if ( ! cancelled ) { @@ -836,7 +836,7 @@ jQuery.extend({ 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 ); } @@ -901,27 +901,31 @@ jQuery.extend({ // 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; |