commit
5ae5ee9a20
@ -1,10 +1,18 @@ |
||||
const promiseToCallback = require('promise-to-callback') |
||||
const noop = function(){} |
||||
|
||||
module.exports = function nodeify (fn, context) { |
||||
return function(){ |
||||
const args = [].slice.call(arguments) |
||||
const callback = args.pop() |
||||
if (typeof callback !== 'function') throw new Error('callback is not a function') |
||||
const lastArg = args[args.length - 1] |
||||
const lastArgIsCallback = typeof lastArg === 'function' |
||||
let callback |
||||
if (lastArgIsCallback) { |
||||
callback = lastArg |
||||
args.pop() |
||||
} else { |
||||
callback = noop |
||||
} |
||||
promiseToCallback(fn.apply(context, args))(callback) |
||||
} |
||||
} |
||||
|
Loading…
Reference in new issue