timer-queue
TimerQueue is for controlling the execution timing of function
Installation
npm install timer-queue
Usage - API
class TimerQueue
var tqueue = new TimerQueue([options])
Constructor
- options
Object
- may contain inital values - options.interval
number
- interval time (ms) for execution.default: 0
- options.timeout
number
- timeout time (ms) for execution.default: 0
- options.retry
number
- retry count when execution function failed.default: 0
- options.retryInterval
number
- interval time (ms) for retry execution.default: 0
- options.autostart
boolean
- auto start when enqueue bytqueue.push()
.default: false
- options.startImmediately
boolean
- run immediately when queue is empty and enqueuing bytqueue.push()
.default: false
tqueue.start()
start the queue.
tqueue.stop()
stop the queue.
can be resumed with tqueue.start()
and can be empty with tqueue.clear()
.
tqueue.clear()
empty the queue.
tqueue.push(fn[, delay])
enqueue the function.
- fn
function
- execution function - delay
number
- delay time (ms) for execution.defalut: 0
tqueue.push(fn[, options])
enqueue the function.
- fn
function
- execution function - options
Object
- may contain options values - options.delay
number
- delay time (ms) for execution.defalut: 0
- options.retry
number
- retry count when execution function failed.default: 0
- options.retryInterval
number
- interval time (ms) for retry execution.default: 0
- options.error
function
- error callback.
Example
let count = 0const now = Date const tqueue = interval: 1000 timeout: 10000 retry: 3 retryInterval: 200 autostart: false tqueue tqueue tqueue tqueue tqueue tqueuetqueue tqueuestart // => first: 3ms / return false// => first: 212ms / return false// => first: 414ms / return true// => second: 2421ms / error()// => second: 2625ms / error()// => second: 2832ms / done()// => third: 4841ms / reject()// => third: 5046ms / reject()// => third: 5250ms / resolve()// => end: 5251ms
const now = Date const tqueue = interval: 1000 timeout: 10000 retry: 3 retryInterval: 200 autostart: false tqueue tqueue tqueuetqueue tqueuestart // => first: 4ms / return false// => first: 211ms / return false// => first: 419ms / return false// => first: 623ms / return false// => error: 624ms
Development
# build
npm run build
# test
npm run test
License
MIT