promisify.js 431 B

123456789101112131415
  1. module.exports = function promisify(f, o) {
  2. const ctx = (o && o.context) || null;
  3. return function promisify_wrap() {
  4. const args = Array.from(arguments);
  5. return new Promise(function promisify_resolver(resolve, reject) {
  6. args.push(function promisify_callback(err, value) {
  7. if (err) {
  8. return reject(err);
  9. }
  10. return resolve(value);
  11. });
  12. f.apply(ctx, args);
  13. });
  14. };
  15. };