Files
Multi-Hoster-Upload/lib/serialized-runner.js
T

23 lines
641 B
JavaScript

(function (root) {
'use strict';
function createSerializedRunner(task) {
if (typeof task !== 'function') throw new TypeError('task must be a function');
let pending = Promise.resolve();
return {
run(...args) {
const result = pending.catch(() => {}).then(() => task(...args));
pending = result;
return result;
},
flush() {
return pending;
}
};
}
const api = { createSerializedRunner };
if (typeof module !== 'undefined' && module.exports) module.exports = api;
else if (root) root.SerializedRunner = api;
})(typeof window !== 'undefined' ? window : this);