Files
snort/packages/system/dist/WorkQueue.js
2023-06-08 12:45:23 +02:00

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