UNPKG

@mightyplow/jslib

Version:

js helpers library

25 lines (22 loc) 808 B
/** * @memberOf function * @param fn * @param context */ var promisify = function promisify(fn) { var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; return function () { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return new Promise(function (resolve, reject) { // create a callback to handle error and data var callback = function callback(err, data) { return err ? reject(err) : resolve(data); }; // call the original function with our callback flavoured arguments fn.call.apply(fn, [context].concat(args, [callback])); }); }; }; export default promisify;