summaryrefslogtreecommitdiff
path: root/lib/async.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/async.js')
-rw-r--r--lib/async.js19
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);
+ }
});
};