diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-05-24 15:10:37 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-05-24 15:11:17 +0200 |
commit | 7a3df06eb573d36142bd1a8e03c5ce8752d300b3 (patch) | |
tree | 70bfaea8884c374876f607774850a3a51c0cb381 /node_modules/async/asyncify.js | |
parent | aca1143cb9eed16cf37f04e475e4257418dd18ac (diff) |
fix build issues and add typedoc
Diffstat (limited to 'node_modules/async/asyncify.js')
-rw-r--r-- | node_modules/async/asyncify.js | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/node_modules/async/asyncify.js b/node_modules/async/asyncify.js index 2c8e77a77..5e3fc9155 100644 --- a/node_modules/async/asyncify.js +++ b/node_modules/async/asyncify.js @@ -13,6 +13,10 @@ var _initialParams = require('./internal/initialParams'); var _initialParams2 = _interopRequireDefault(_initialParams); +var _setImmediate = require('./internal/setImmediate'); + +var _setImmediate2 = _interopRequireDefault(_setImmediate); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** @@ -34,7 +38,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de * @method * @alias wrapSync * @category Util - * @param {Function} func - The synchronous funuction, or Promise-returning + * @param {Function} func - The synchronous function, or Promise-returning * function to convert to an {@link AsyncFunction}. * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be * invoked with `(args..., callback)`. @@ -82,13 +86,25 @@ function asyncify(func) { // if result is Promise object if ((0, _isObject2.default)(result) && typeof result.then === 'function') { result.then(function (value) { - callback(null, value); + invokeCallback(callback, null, value); }, function (err) { - callback(err.message ? err : new Error(err)); + invokeCallback(callback, err.message ? err : new Error(err)); }); } else { callback(null, result); } }); } + +function invokeCallback(callback, error, value) { + try { + callback(error, value); + } catch (e) { + (0, _setImmediate2.default)(rethrow, e); + } +} + +function rethrow(error) { + throw error; +} module.exports = exports['default'];
\ No newline at end of file |