JSFiddle - React, Tailwind, and code Playground
JavaScript
var task = (function($){
var dfd = $.Deferred(),
cls = function(){
console.log('param passed:', arguments);
for(var i = 0; i < 5; i++){
var count = 0;
setTimeout(function(){
count++;
dfd.notify({ msg: 'interation ' + count + ' complete' });
if(count === 5)
dfd.resolve({ something: 1 });
//if anything goes wrong, you can always reject the deferred:
//dfd.reject(args);
}, 1000 * i);
}
};
cls.prototype = {
done: dfd.promise().done,
fail: dfd.promise().fail,
always: dfd.promise().always,
progress: dfd.promise().progress
};
return cls;
})(jQuery);
var t = new task({ foo: 'bar' }, 123, 'baz');
t.progress(function(data){
console.log('progress:', data);
}).done(function(){
console.log('done');
}).fail(function(){
console.log('fail');
}).always(function(){
console.log('always');
});