aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorjaubourg <j@ubourg.net>2011-01-05 04:29:30 +0100
committerjaubourg <j@ubourg.net>2011-01-05 04:29:30 +0100
commitcbf591152c9f61381e552c9a15bb7c339f1451a9 (patch)
treebc3519a7bc403d2232d4044cc4d5d165caaeed8f /src
parent4ab94a578ee7760c4e44bafa56139af82c40028b (diff)
downloadjquery-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.js4
-rw-r--r--src/core.js44
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;