Skip to content
Permalink
Browse files

Eliminate redundancy of Deferred.then().

  • Loading branch information...
nanto committed Jan 7, 2013
1 parent e7fdda9 commit 412d910697f7c33a29066009930e1373fd80b27a
Showing with 11 additions and 16 deletions.
  1. +11 −16 src/deferred.js
@@ -21,24 +21,19 @@ jQuery.extend({
return jQuery.Deferred(function( newDefer ) {
jQuery.each( tuples, function( i, tuple ) {
var action = tuple[ 0 ],
fn = fns[ i ];
fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
// deferred[ done | fail | progress ] for forwarding actions to newDefer
deferred[ tuple[1] ]( jQuery.isFunction( fn ) ?
function() {
var returned = fn.apply( this, arguments );
if ( returned && jQuery.isFunction( returned.promise ) ) {
returned.promise()
.done( newDefer.resolve )
.fail( newDefer.reject )
.progress( newDefer.notify );
} else {
newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, [ returned ] );
}
} :
function() {
newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, arguments );
deferred[ tuple[1] ](function() {
var returned = fn && fn.apply( this, arguments );
if ( returned && jQuery.isFunction( returned.promise ) ) {
returned.promise()
.done( newDefer.resolve )
.fail( newDefer.reject )
.progress( newDefer.notify );
} else {
newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
}
);
});
});
fns = null;
}).promise();

0 comments on commit 412d910

Please sign in to comment.
You can’t perform that action at this time.