Progress Notifications
Deferred objects support a third state: progress. Use .notify() on the Deferred and .progress() to listen for updates.
Deferred objects support a third state: progress. Use .notify() on the Deferred and .progress() to listen for updates.
function upload(files) {
const dfd = $.Deferred();
let done = 0;
files.forEach(function(file) {
uploadFile(file).done(function() {
done++;
dfd.notify(Math.round(done / files.length * 100));
if (done === files.length) dfd.resolve();
});
});
return dfd.promise();
}
upload(myFiles)
.progress(pct => $("#bar").css("width", pct + "%"))
.done(() => alert("All files uploaded!"));
Native Promises do not have a progress state — use Deferred when you need progress callbacks.