callbackify.js 525 B

123456789101112131415161718192021
  1. var _ = require("./_");
  2. module.exports = function (fn, self) {
  3. return function () {
  4. var args, cb, j;
  5. args = 2 <= arguments.length ?
  6. _.slice.call(arguments, 0, j = arguments.length - 1) :
  7. (j = 0, []), cb = arguments[j++];
  8. var isFn = _.isFunction(cb);
  9. if (!isFn) {
  10. args.push(cb);
  11. return fn.apply(self, args);
  12. }
  13. return fn.apply(self, args).then(function (val) {
  14. cb(null, val);
  15. })["catch"](cb);
  16. };
  17. };