promisify.js 549 B

123456789101112131415161718
  1. var restArgs = require('./restArgs');
  2. var root = require('./root');
  3. exports = function(fn, multiArgs) {
  4. return restArgs(function(args) {
  5. return new root.Promise(function(resolve, reject) {
  6. args.push(
  7. restArgs(function callback(err, values) {
  8. if (err) return reject(err);
  9. if (!multiArgs) return resolve(values[0]);
  10. resolve(values);
  11. })
  12. );
  13. fn.apply(this, args);
  14. });
  15. });
  16. };
  17. module.exports = exports;