diff options
Diffstat (limited to 'lib/async.js')
-rw-r--r-- | lib/async.js | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/lib/async.js b/lib/async.js index d9e6244..84d17aa 100644 --- a/lib/async.js +++ b/lib/async.js @@ -1186,18 +1186,19 @@ var result; try { result = func.apply(this, args); - // if result is Promise object - if (typeof result.then === "function") { - result.then(function(values) { - var args = [null].concat(values); - callback.apply(this, args); - }).catch(callback); - } else { - callback(null, result); - } } catch (e) { return callback(e); } + // if result is Promise object + if (typeof result !== 'undefined' && typeof result.then === "function") { + result.then(function(value) { + callback(null, value); + }).catch(function(err) { + callback(new Error(err)); + }); + } else { + callback(null, result); + } }); }; |