30 lines
868 B
JavaScript
30 lines
868 B
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.barrierQueue = exports.processWorkQueue = void 0;
|
|
async function processWorkQueue(queue, queueDelay = 200) {
|
|
while (queue && queue.length > 0) {
|
|
const v = queue.shift();
|
|
if (v) {
|
|
try {
|
|
const ret = await v.next();
|
|
v.resolve(ret);
|
|
}
|
|
catch (e) {
|
|
v.reject(e);
|
|
}
|
|
}
|
|
}
|
|
setTimeout(() => processWorkQueue(queue, queueDelay), queueDelay);
|
|
}
|
|
exports.processWorkQueue = processWorkQueue;
|
|
const barrierQueue = async (queue, then) => {
|
|
return new Promise((resolve, reject) => {
|
|
queue.push({
|
|
next: then,
|
|
resolve,
|
|
reject,
|
|
});
|
|
});
|
|
};
|
|
exports.barrierQueue = barrierQueue;
|
|
//# sourceMappingURL=WorkQueue.js.map
|