m.queue
v2.0.2
Published
m(icro)queue is a lightweight es6+ library that exports an asynchronous function queue with adjustable concurrency
Downloads
13
Maintainers
Readme
m.queue
m(icro)queue is a lightweight es6+ library that exports an asynchronous function queue with adjustable concurrency.
.async
creates a queue
object with the specified concurrency
. tasks added to the queue are processed in parallel (up to the concurrency limit). if all workers
are in progress, the task is queued until one becomes available. once a worker
completes a task, that task's callback is called.
const {async} = require('m.queue')
const queue = async(function worker (arg0, arg1, callback) {
if (err) {
callback(err)
return
}
callback(null, arg0, arg1)
}, 10)
.sequence
creates a queue
object. tasks added to the queue are processed sequentially. while the worker
is executing tasks will be queued. once a worker
completes a task, that task's callback is called.
const {sequence} = require('m.queue')
const queue = sequence(function worker (arg0, arg1, callback) {
if (err) {
callback(err)
return
}
callback(null, arg0, arg1)
})
queue.resume()
resumes worker execution
queue.pause()
pauses worker execution
queue.drain([callback])
sets concurrency to infinite and notifies when idle
queue.unshift([...args, callback]])
unshifts task to queue
queue.push([..args, callback])
pushes task to queue
queue.length
inherited from array, returns the queue length
queue.shift()
inherited from array
queue.pop()
inherited from array