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/core.js | |
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/core.js')
-rw-r--r-- | src/core.js | 44 |
1 files changed, 24 insertions, 20 deletions
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; |