async-queue-improved
Advanced tools
Comparing version 0.0.2 to 0.0.3
12
index.js
@@ -92,10 +92,16 @@ var async = require('async'), | ||
}, concurrency) | ||
var finish = function(callback) { | ||
var errors = queue.errors.length > 0 ? queue.errors : null | ||
callback(errors) | ||
queue.drain = null | ||
} | ||
// Convenience onComplete function | ||
queue.onComplete = function(callback) { | ||
if (queue.length() + queue.running()) { | ||
queue.drain = callback | ||
if (queue.length() + queue.running() > 0) { | ||
queue.drain = finish.bind(null, callback) | ||
} | ||
else { | ||
callback() | ||
finish(callback) | ||
} | ||
@@ -102,0 +108,0 @@ } |
{ | ||
"name": "async-queue-improved", | ||
"version": "0.0.2", | ||
"version": "0.0.3", | ||
"description": "Improved queue based `async` package", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
15
test.js
@@ -24,11 +24,14 @@ // TODO: unit tests | ||
q.push({id: 1, data:{fakeError: null, fakeResult:111, duration: 100}, timeout: 1000}, taskCallback) | ||
q.push({id: 1, data:{fakeError: null, fakeResult:111, duration: 100}, timeout: 1000}, taskCallback) | ||
q.push({id: 1, data:{fakeError: null, fakeResult:111, duration: 100}, timeout: 1000}, taskCallback) | ||
q.push({id: 1, data:{fakeError: null, fakeResult:112, duration: 100}, timeout: 1000}, taskCallback) | ||
q.push({id: 1, data:{fakeError: null, fakeResult:113, duration: 100}, timeout: 1000}, taskCallback) | ||
setTimeout(function() { | ||
q.push({id: 1, data:{fakeError: null, fakeResult:111, duration: 100}, timeout: 1000}, taskCallback) | ||
}, 200) | ||
q.push({id: 2, data:{fakeError: "hehe", fakeResult:114, duration: 100}, timeout: 1000}, taskCallback) | ||
}, 100) | ||
q.onComplete(function() { | ||
console.log('queue complete! (errors %j)', q.errors.length) | ||
q.onComplete(function(err) { | ||
console.log('queue complete!') | ||
if (err) { | ||
console.log('(errors %j)', err.length) | ||
} | ||
}) |
4669
122