@mightyplow/jslib
Version:
js helpers library
25 lines (22 loc) • 808 B
JavaScript
/**
* @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;