A promise based worker queue with limited concurrency.
// Create a queue with two worker threads
const queue = new Queue(2);
queue.onEmpty(() => {
console.log('done');
});
// Adding tasks to do
queue.add(function task1() {});
queue.add(function task2() {});
queue.add(function task3() {});
queue.add(function task4() {});
queue.add(function task5() {});
The scheduled tasks will be executed but at most queue.concurrency
task will be executed in parallel.