workq
A super tiny work queue.
It can handle nested queues, the order of execution is guaranteed.
The top level queue will start automatically once you add at least one job in the queue, the nested queues will start once the done
callback has been called; you cannot add more jobs in the current queue after done
has been called.
If you need a shared queue between multiple files pass the option { singleton: true }
in every file you need it.
Install
npm i workq --save
Usage
const q = q { // perform some work // you can add nested jobs! child }) { // perform some work })
Async/await and promises are supported as well!
const q = q // there is no need to call `done`! { // perform some work // you can add nested jobs! child}) { // perform some work})
If you need to know when a queue has finished all its jobs, you can use the drain
api.
Note that in the top queue the drain hook can be called multiple times.
const q = q q { // perform some work // you can add nested jobs! child }) { // perform some work })
If you need to pass some parameter to the job, just add them after the function in add
:
const q = q { console // 'hello' 42 })
If needed you can also use the child
method to create custom child queues. The child queues will be executed once the current queue has finished its execution.
const q = const childq = q qchildq { console // 'hello' 42 })
License
Licensed under MIT.