@beenotung/tslib
Version:
utils library in Typescript
25 lines (24 loc) • 694 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TaskPool = void 0;
const task_queue_1 = require("./task-queue");
/** @description concurrent task queue */
class TaskPool extends task_queue_1.TaskQueue {
concurrentSize;
ps;
i;
constructor(concurrentSize = 1) {
super();
this.concurrentSize = concurrentSize;
// prettier-ignore
this.ps = new Array(concurrentSize)
.fill('')
.map(() => new task_queue_1.TaskQueue());
this.i = 0;
}
runTask(f) {
this.i = (this.i + 1) % this.ps.length;
return this.ps[this.i].runTask(f);
}
}
exports.TaskPool = TaskPool;