UNPKG

@beenotung/tslib

Version:
25 lines (24 loc) 694 B
"use strict"; 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;