Commit 412d9106 authored by nanto_vi's avatar nanto_vi

Eliminate redundancy of Deferred.then().

parent e7fdda98
...@@ -21,24 +21,19 @@ jQuery.extend({ ...@@ -21,24 +21,19 @@ jQuery.extend({
return jQuery.Deferred(function( newDefer ) { return jQuery.Deferred(function( newDefer ) {
jQuery.each( tuples, function( i, tuple ) { jQuery.each( tuples, function( i, tuple ) {
var action = tuple[ 0 ], var action = tuple[ 0 ],
fn = fns[ i ]; fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
// deferred[ done | fail | progress ] for forwarding actions to newDefer // deferred[ done | fail | progress ] for forwarding actions to newDefer
deferred[ tuple[1] ]( jQuery.isFunction( fn ) ? deferred[ tuple[1] ](function() {
function() { var returned = fn && fn.apply( this, arguments );
var returned = fn.apply( this, arguments );
if ( returned && jQuery.isFunction( returned.promise ) ) { if ( returned && jQuery.isFunction( returned.promise ) ) {
returned.promise() returned.promise()
.done( newDefer.resolve ) .done( newDefer.resolve )
.fail( newDefer.reject ) .fail( newDefer.reject )
.progress( newDefer.notify ); .progress( newDefer.notify );
} else { } else {
newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, [ returned ] ); newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
} }
} : });
function() {
newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, arguments );
}
);
}); });
fns = null; fns = null;
}).promise(); }).promise();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment