move to pkg
This commit is contained in:
30
packages/system/dist/WorkQueue.js
vendored
Normal file
30
packages/system/dist/WorkQueue.js
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
"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
|
Reference in New Issue
Block a user