作者: dm_vincent | 来源:发表于2016-07-31 16:38 被阅读0次

    h1

    sdfsdfsdfsdf

     function loadModules(modulesToLoad) {
      var runBlocks = [], moduleFn;
      // 依次加载定义在依赖数组中的每一个module
      forEach(modulesToLoad, function(module) {
        // 如果已经加载过参数指定的module,立刻返回
        if (loadedModules.get(module)) return;
        loadedModules.put(module, true);
    
        if (isString(module)) {
          // 如果是以字符串形式定义的module --- 即module的名字
          moduleFn = angularModule(module);
          // 递归进行module的加载工作,因为被依赖的module同样还可以依赖于别的module(这里出现的runBlocks我们先行忽略,重点在其中loadModules函数的再次调用)
          runBlocks = runBlocks.concat(loadModules(moduleFn.requires)).concat(moduleFn._runBlocks);
          runInvokeQueue(moduleFn._invokeQueue);
        } else if (isFunction(module)) {
            // 如果是以函数形式定义的module
        } else if (isArray(module)) {
            // 如果是以数组形式定义的module
        } else {
          // 当module不符合上述几种类型时,抛出异常
          assertArgFn(module, 'module');
        }
      });
      
      return runBlocks;
    }
    

    相关文章

      网友评论

          本文标题:

          本文链接:https://www.haomeiwen.com/subject/eutxsttx.html