diff options
author | Alexander Early <alexander.early@gmail.com> | 2016-02-14 15:54:59 -0800 |
---|---|---|
committer | Alexander Early <alexander.early@gmail.com> | 2016-02-14 15:54:59 -0800 |
commit | e46c8a6c74035223eecd55ba6dfdbef0e34cefad (patch) | |
tree | 4d9a7140c8e97261b2fa8ef9c4c9ae690a85136b /lib/auto.js | |
parent | db9acac2bb7161fac1d9c83fbce416ef63b95420 (diff) | |
parent | 01205e053b16c7843a3d4d3c9075b33de5adb2d0 (diff) | |
download | async-e46c8a6c74035223eecd55ba6dfdbef0e34cefad.tar.gz |
merge from master
Diffstat (limited to 'lib/auto.js')
-rw-r--r-- | lib/auto.js | 7 |
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'); |