diff options
author | kumavis <kumavis@users.noreply.github.com> | 2019-03-29 14:23:02 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-29 14:23:02 +0800 |
commit | c3a605f27a846b72227237cefa6e4590c8a3b2c1 (patch) | |
tree | 6dfc14e35e25ae47b04a331d8d8ccb0bc4341c64 /app/scripts/lib | |
parent | 133ed80aeeeea4e2b0e9f1acb532f5d66f2575ca (diff) | |
parent | ed381f5b2a3a85d351248769b3d150742acb703b (diff) | |
download | tangerine-wallet-browser-c3a605f27a846b72227237cefa6e4590c8a3b2c1.tar tangerine-wallet-browser-c3a605f27a846b72227237cefa6e4590c8a3b2c1.tar.gz tangerine-wallet-browser-c3a605f27a846b72227237cefa6e4590c8a3b2c1.tar.bz2 tangerine-wallet-browser-c3a605f27a846b72227237cefa6e4590c8a3b2c1.tar.lz tangerine-wallet-browser-c3a605f27a846b72227237cefa6e4590c8a3b2c1.tar.xz tangerine-wallet-browser-c3a605f27a846b72227237cefa6e4590c8a3b2c1.tar.zst tangerine-wallet-browser-c3a605f27a846b72227237cefa6e4590c8a3b2c1.zip |
Merge pull request #6328 from MetaMask/clearNotices
Clear notices
Diffstat (limited to 'app/scripts/lib')
-rw-r--r-- | app/scripts/lib/nodeify.js | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/app/scripts/lib/nodeify.js b/app/scripts/lib/nodeify.js index 25be6537b..a813ae679 100644 --- a/app/scripts/lib/nodeify.js +++ b/app/scripts/lib/nodeify.js @@ -1,5 +1,5 @@ const promiseToCallback = require('promise-to-callback') -const noop = function () {} +const callbackNoop = function (err) { if (err) throw err } /** * A generator that returns a function which, when passed a promise, can treat that promise as a node style callback. @@ -11,6 +11,7 @@ const noop = function () {} */ module.exports = function nodeify (fn, context) { return function () { + // parse arguments const args = [].slice.call(arguments) const lastArg = args[args.length - 1] const lastArgIsCallback = typeof lastArg === 'function' @@ -19,8 +20,16 @@ module.exports = function nodeify (fn, context) { callback = lastArg args.pop() } else { - callback = noop + callback = callbackNoop } - promiseToCallback(fn.apply(context, args))(callback) + // call the provided function and ensure result is a promise + let result + try { + result = Promise.resolve(fn.apply(context, args)) + } catch (err) { + result = Promise.reject(err) + } + // wire up promise resolution to callback + promiseToCallback(result)(callback) } } |