Commit 2a9f0681 authored by jaubourg's avatar jaubourg

Have Deferred.always return the object onto which it is currently attached to...

Have Deferred.always return the object onto which it is currently attached to enable true chainability. Fixes #10723. Unit tests added.
parent c3600e26
...@@ -33,7 +33,8 @@ jQuery.extend({ ...@@ -33,7 +33,8 @@ jQuery.extend({
return this; return this;
}, },
always: function() { always: function() {
return deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments ); deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments );
return this;
}, },
pipe: function( fnDone, fnFail, fnProgress ) { pipe: function( fnDone, fnFail, fnProgress ) {
return jQuery.Deferred(function( newDefer ) { return jQuery.Deferred(function( newDefer ) {
......
...@@ -56,6 +56,19 @@ jQuery.each( [ "", " - new operator" ], function( _, withNew ) { ...@@ -56,6 +56,19 @@ jQuery.each( [ "", " - new operator" ], function( _, withNew ) {
}); });
} ); } );
test( "jQuery.Deferred - chainability", function() {
var methods = "resolve reject notify resolveWith rejectWith notifyWith done fail progress then always".split( " " ),
defer = jQuery.Deferred();
expect( methods.length );
jQuery.each( methods, function( _, method ) {
var object = { m: defer[ method ] };
strictEqual( object.m(), object, method + " is chainable" );
});
});
test( "jQuery.Deferred.pipe - filtering (done)", function() { test( "jQuery.Deferred.pipe - filtering (done)", function() {
expect(4); expect(4);
......
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