jQuery Deferreds

by coffeeandcode

JavaScript

// create a deferred object and assign a method to call
// when it completes successfully
var passingDeferred = $.Deferred();
passingDeferred.done(function() {
    console.log('Done!');
});

// create a deferred object and assign a method to call
// when it fails to complete successfully
var failingDeferred = $.Deferred();
failingDeferred.fail(function() {
    console.log('Fail...');
});

passingDeferred.resolve(); // outputs 'Done!'

failingDeferred.reject(); // outputs 'Fail...'

// calling a deferred that has already completed is ok too
passingDeferred.done(function() {
    console.log('still done!');
}); // outputs 'still done!' immediately