mirror of
https://github.com/jquery/jquery.git
synced 2026-04-20 03:01:22 -04:00
Merge branch '1.8/#11010/Deferred' into 1.8pre
This commit is contained in:
@@ -611,7 +611,7 @@ jQuery.extend({
|
||||
}
|
||||
} else {
|
||||
tmp = map[ jqXHR.status ];
|
||||
jqXHR.then( tmp, tmp );
|
||||
jqXHR.always( tmp );
|
||||
}
|
||||
}
|
||||
return this;
|
||||
|
||||
@@ -28,15 +28,11 @@ jQuery.extend({
|
||||
isResolved: doneList.fired,
|
||||
isRejected: failList.fired,
|
||||
|
||||
then: function( doneCallbacks, failCallbacks, progressCallbacks ) {
|
||||
deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks );
|
||||
return this;
|
||||
},
|
||||
always: function() {
|
||||
deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments );
|
||||
return this;
|
||||
},
|
||||
pipe: function( fnDone, fnFail, fnProgress ) {
|
||||
then: function( fnDone, fnFail, fnProgress ) {
|
||||
return jQuery.Deferred(function( newDefer ) {
|
||||
jQuery.each( {
|
||||
done: [ fnDone, "resolve" ],
|
||||
@@ -50,7 +46,7 @@ jQuery.extend({
|
||||
deferred[ handler ](function() {
|
||||
returned = fn.apply( this, arguments );
|
||||
if ( returned && jQuery.isFunction( returned.promise ) ) {
|
||||
returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify );
|
||||
returned.promise().done( newDefer.resolve ).fail( newDefer.reject ).progress( newDefer.notify );
|
||||
} else {
|
||||
newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
|
||||
}
|
||||
@@ -74,9 +70,15 @@ jQuery.extend({
|
||||
return obj;
|
||||
}
|
||||
},
|
||||
deferred = promise.promise({}),
|
||||
deferred,
|
||||
key;
|
||||
|
||||
// Keep pipe for back-compat
|
||||
promise.pipe = promise.then;
|
||||
|
||||
// Construct deferred
|
||||
deferred = promise.promise({});
|
||||
|
||||
for ( key in lists ) {
|
||||
deferred[ key ] = lists[ key ].fire;
|
||||
deferred[ key + "With" ] = lists[ key ].fireWith;
|
||||
@@ -127,7 +129,7 @@ jQuery.extend({
|
||||
if ( length > 1 ) {
|
||||
for ( ; i < length; i++ ) {
|
||||
if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) {
|
||||
args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) );
|
||||
args[ i ].promise().done( resolveFunc(i) ).fail( deferred.reject ).progress( progressFunc(i) );
|
||||
} else {
|
||||
--count;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user