diff options
author | Alexander Early <alexander.early@gmail.com> | 2017-04-06 22:55:51 -0700 |
---|---|---|
committer | Alexander Early <alexander.early@gmail.com> | 2017-04-06 22:55:51 -0700 |
commit | 7f913b6d6a951bef9b287c0e186664b655b90c73 (patch) | |
tree | cb3babfc2463b1c3e26a4e81eecbefa84ce16d0b /lib | |
parent | 7aa90f39cf8ed4e92a9c939f0521ce1482312c67 (diff) | |
download | async-7f913b6d6a951bef9b287c0e186664b655b90c73.tar.gz |
handle async functions in tryEach
Diffstat (limited to 'lib')
-rw-r--r-- | lib/tryEach.js | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/tryEach.js b/lib/tryEach.js index d87245f..025f7c9 100644 --- a/lib/tryEach.js +++ b/lib/tryEach.js @@ -1,6 +1,7 @@ import noop from 'lodash/noop'; import eachSeries from './eachSeries'; -import rest from './internal/rest'; +import wrapAsync from './internal/wrapAsync'; +import slice from './internal/slice'; /** * It runs each task in series but stops whenever any of the functions were @@ -44,14 +45,15 @@ export default function tryEach(tasks, callback) { var result; callback = callback || noop; eachSeries(tasks, function(task, callback) { - task(rest(function (err, args) { - if (args.length <= 1) { - args = args[0]; + wrapAsync(task)(function (err, res/*, ...args*/) { + if (arguments.length > 2) { + result = slice(arguments, 1); + } else { + result = res; } error = err; - result = args; callback(!err); - })); + }); }, function () { callback(error, result); }); |