code: function requireSync(userResolver, moduleId, callback) {
    return _requireX(..._parseRequireParams([userResolver, moduleId, callback], true));
  }
docs: Load a module asynchronously, this is an async version of require().  Will load a collection of modules if an array
  is supplied.  Will reject if module is not found or on error.
  
  This version still uses the native require() from node but resolves the path using async methodology.
  
  @public
  @param {Object} [userResolver=config.get('resolver')]      User-created resolver function or an options object.
  @param {string|Array} moduleId                             Module name or path (or array of either), same format
  as for require().
  @param {function} [callback]                               Node-style callback to use instead of (or as well as)
  returned promise.
  @returns {Promise.<*>}                                     Promise, resolved with the module(s) exports or undefined.