Bloking FIFO queue and flow control using Promise.
npm install blocking-queue
var Queue = require('blocking-queue');
var QueueConsumer = require('blocking-queue').QueueConsumer;
var q = new Queue();
q.push('task1');
q.push('task2');
q.push('task3');
q.push('task4');
q.push('task5');
var c = new QueueConsumer(q);
c.start(function(task){
return new Promise(function(resolve, reject){
// working on task
resolve();
});
}, 2);
c.end().then(function(){
// on all tasks done
});- task {Object} required
- return {Promise}
- return {integer}
- queue {Queue} required
- consumer {Function} required should be called with 1 parameters: task.
- cocurrency {integer} optional, default: 1
- return {Promise}
MIT.