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');
});