summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzartdinov <zartdinov@gmail.com>2015-07-08 18:57:25 +0000
committerzartdinov <zartdinov@gmail.com>2015-07-08 18:57:25 +0000
commitb89b1acf95188bc74e3e528a72bf22ce30e1b677 (patch)
tree4198f409e2fc4b9770e0b723505a759c3ad1bd13
parentdeaa5a1b8a36eacbb7d31f3a825828f37220396b (diff)
downloadasync-b89b1acf95188bc74e3e528a72bf22ce30e1b677.tar.gz
asyncify Promises
-rw-r--r--lib/async.js10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/async.js b/lib/async.js
index cbd2678..d9e6244 100644
--- a/lib/async.js
+++ b/lib/async.js
@@ -1186,10 +1186,18 @@
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);
}
- callback(null, result);
});
};