code: function pCall(fn) {
  	try {
  		var args = Array.prototype.slice.call(arguments, 1)
  		var val = fn.apply(null, args);
  		return asPromise(val);
  	} catch (e) {
  		return asRejectedPromise(e);
  	}
  }
docs: /* call as promise