code: function promisify(op) {
      var args = slice.call(arguments, 1);
      return new Promise(function(resolver) {
        op.apply(null, args.concat(function(err, value) {
          if(err) {
            resolver.reject(err);
          }
          else {
            resolver.resolve(value);
          }
        }));
      });
    }
docs: converts a node.js async op into a promise w/boxed resolved value(s)