Deferred VS Promise

by Chan Wu

Babel + JSX

console.clear();

let results = [];

[2000, 3000, 4000].forEach(timer => {
	results.push($.Deferred(dfd => {
    	setTimeout(() => {
        	console.log('single done!');
            dfd.resolve();
        }, timer);
    }));
});

$.when.apply($, results).then(() => {
	console.log('all done');
});

let promises = [];

[2000, 3000, 4000].forEach(timer => {
	promises.push(new Promise(resolve => {
    	setTimeout(() => {
        	console.log('single promise done!');
            resolve();
        }, timer);
    }));
});

Promise.all(promises).then(() => {
	console.log('promise all done');
});