@tech_userreport.com/queue
v1.2.3
Published
Simple command queue
Readme
Simple command queue, so callbacks enqueued are called one after another.
queue = require "@tech_userreport.com/queue"
cmdq = queue()
cmdq.enqueue (next) ->
setTimeout () ->
console.log "I'll be called first"
next()
, 0
cmdq.enqueue (next) ->
console.log "I'll be called second"
next().enqueue(command)
Enqueue command to be called. Receiving callback which should be called once command is finished.
cmdq.enqueue (next) ->
longRunningAsyncMethod () ->
next().length
Count of commands in queue including one being executed
cmdq.enqueue (next) ->
console.log cmdq.length # 1
next().onchange
Subscribe to changes in queue. It's called when new command is added to queue or command had finished execution.
cmdq.onchange () ->
# called two times
# first call .length is 1
# second call .length is 0
console.log cmdq.length
cmdq.enqueue (next) ->
next().pause
Pause queue processing.
queue = require "@tech_userreport.com/queue"
cmdq1 = queue()
cmdq2 = queue()
cmdq1.onchange () ->
if cmdq1.length isnt 0
cmdq2.pause()
else
cmdq2.resume()
.resume
Resume queue processing
