2015-11-30 53 views
0

1'm想某一天晚上我安装应用程序之前,注入到多个依赖的制造,但它挂起/崩溃。注入依赖做......而

function injectSingle (file, done) { 
    var source; 

    switch (file.type) { 
     case 'js': 
      source = document.createElement('script'); 
      source.src = file.src; 
      source.async = true; 
      break; 

     case 'css': 
      source = document.createElement('link'); 
      source.href = file.src; 
      source.type = 'text/css'; 
      source.rel = 'stylesheet'; 
      break; 
    } 

    if (source.readyState) { // IE 
     source.onreadystatechange = function() { 
      if (source.readyState == "loaded" || source.readyState == "complete"){ 
       source.onreadystatechange = null; 
       done(); 
      } 
     }; 
    } else { // Standard 
     source.onload = function() { 
      done(); 
     }; 
    } 

    document.getElementsByTagName('head')[0].appendChild(source); 
} 

function injectDependencies (files, launch) { 
    var ready = 0; 
    do { 
     injectSingle(files[ready], function() { 
      ready++; 
      console.log('Ready Count: %s', ready); 
     }); 
    } while (ready < files.length - 1); 
    launch(); 
} 

(function() { 
    injectDependencies([ 
     { 
      src: '//example.com/dep.min.js', 
      type: 'js' 
     }, 
     { 
      src: '//example.com/dep.2.js', 
      type: 'js' 
     }, 
     { 
      src: '//example.com/dep.css', 
      type: 'css' 
     }, 
    ], function() { 
     React.render(<Application/>, document.getElementById('someId')); 
    }) 
}) 

请忽略此位,为1个需要填补该职位有更多的文本。

Lorem存有胡萝卜,增强回扣,但他们occaecat时间和活力,如劳动力和肥胖。多年来,我会来的,谁将会nostrud aliquip了她锻炼的优势,使刺激措施,如果学区和长寿。想成为在cupidatat cillum疼痛已经在DUIS等dolore麦格纳被批评逃离产生任何结果的乐趣。 Excepteur cupidatat黑人就不是excepteur,舒缓心灵,那就是,他们抛弃了那些谁是责怪你的烦恼的一般责任。

回答

0

injectDependencies 1是能够通过改变功能这一来完成它:

function injectDependencies (files, launch) { 
    var script, ready = 0, total = files.length; 

    while (script = files.shift()) { 
     injectSingle(script, function() { 
      ready++; 
      if (ready == total) launch(); 
     }); 
    } 
}