summaryrefslogtreecommitdiff
path: root/lib/auto.js
diff options
context:
space:
mode:
authorAlexander Early <alexander.early@gmail.com>2016-02-14 15:54:59 -0800
committerAlexander Early <alexander.early@gmail.com>2016-02-14 15:54:59 -0800
commite46c8a6c74035223eecd55ba6dfdbef0e34cefad (patch)
tree4d9a7140c8e97261b2fa8ef9c4c9ae690a85136b /lib/auto.js
parentdb9acac2bb7161fac1d9c83fbce416ef63b95420 (diff)
parent01205e053b16c7843a3d4d3c9075b33de5adb2d0 (diff)
downloadasync-e46c8a6c74035223eecd55ba6dfdbef0e34cefad.tar.gz
merge from master
Diffstat (limited to 'lib/auto.js')
-rw-r--r--lib/auto.js7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/auto.js b/lib/auto.js
index 3467896..327383b 100644
--- a/lib/auto.js
+++ b/lib/auto.js
@@ -31,6 +31,7 @@ export default function (tasks, concurrency, callback) {
var results = {};
var runningTasks = 0;
+ var hasError = false;
var listeners = [];
function addListener(fn) {
@@ -54,6 +55,7 @@ export default function (tasks, concurrency, callback) {
});
arrayEach(keys, function (k) {
+ if (hasError) return;
var task = isArray(tasks[k]) ? tasks[k]: [tasks[k]];
var taskCallback = rest(function(err, args) {
runningTasks--;
@@ -66,6 +68,8 @@ export default function (tasks, concurrency, callback) {
safeResults[rkey] = val;
});
safeResults[k] = args;
+ hasError = true;
+
callback(err, safeResults);
}
else {
@@ -79,7 +83,8 @@ export default function (tasks, concurrency, callback) {
var dep;
while (len--) {
if (!(dep = tasks[requires[len]])) {
- throw new Error('Has inexistant dependency');
+ throw new Error('Has non-existent dependency in ' +
+ requires.join(', '));
}
if (isArray(dep) && indexOf(dep, k) >= 0) {
throw new Error('Has cyclic dependencies');