pjobs
A simple and efficient queue job executor using promises. And some promise's utilities.
install
npm install --save pjobs
usage
queuePromises
defines an executor for jobs. A job is just a function that returns a Promise. You can also control concurrency and promises.
import { queuePromises } from 'pjobs'
const queue = queuePromises({
concurrency: 1,
onProgress (status) {
console.log('queue status: ', status)
}
})
queue.enqueue(async () => {
console.log('task 1')
})
const promiseForTask2 = queue.promise(async () => {
console.log('task 2')
return 'OK'
})
await queue.waitFor()
await promiseForTask2
defer
allow you to deferred promise. Like promise-deferred NPM but lighter.
import { defer } from 'pjobs'
const deffered = defer<number>()
setTimeout( ()=> deffered.resolve(1), 10)
setTimeout( ()=> deffered.reject(new Error('timeout')), 100)
await deffered.promise
sleep
allow you pause execution flow for some miliseconds
import { sleep } from 'pjobs'
await sleep(100)
asap
delay execution of a function to as soon as possible
import { asap } from 'pjobs'
asap(()=>console.log('b'))
console.log('a');