lightweight concurrent function queue
npm install quuquu is a simple and lightweigt function queue.
Create an instance of quu. Run tasks at once, for run() to be called before starting any tasks.
Add a task to the queue. Call done() when the task is done any err will be collected.
complete will be called, when all tasks are completed, with all errors collected.
When no callback is provided, q.run() returns a promise.
`` javascript
const quu = require("quu");
// create queue with a maximum concurrency of 5
const q = quu(5);
// add a task to the queue
q.push(done=>{
// let's do heaps of async stuff...
// look at all the stuff we are doing...
// nearly finished... done.
// phew! that was quite some work.
// ok, lets wrap this up now!
done();
});
// callback after tasks are complete
q.run((errors, completed)=>{
if (errors) errors.forEach(console.error);
// queue is empty
});
// or promise
const { errors, completed } = await q.run();
``