jQuery promise pattern

jQuery promise pattern

by seefeld

JavaScript

function doStuff(flag) {
   var deferred = $.Deferred();
   var err = null,
   data = null;
   if (flag) {
       setTimeout(function() {
           data = ["2", "2"];
           deferred.resolve(err, data);
       }, 5 * 1000)
   } else {
       setTimeout(function() {
           err = "Error msg goes here";
           data = null;
           deferred.resolve(err, data);
       }, 5 * 1000)
   }
   return deferred.promise();
}


(function(){

    var promiseTrue = doStuff(true);
    promiseTrue.done( function(err, data){
        console.log(err);
        console.log(data);
    });
    
    var promiseFalse = doStuff(false);
    promiseFalse.done( function(err, data){
        console.log(err);
        console.log(data);
    });


})();