您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 网站教程 > AJAX教程 >
    异步javascript的原理和实现(2)
    时间:2017-06-05 13:54 来源: 作者: 浏览:收藏 挑错 推荐 打印

    12:           13:          for(var i = 0; i < funcArray.length; ++i)
     14:          {
     15:              asyncWhile(function(item, tIndex){
     16:                  return function(){
     17:                      if( tInfo.abort )
     18:                          return false;
     19:                      if( tInfo.currentIndex < tIndex )
     20:                          return true;
     21:                      else if( tInfo.currentIndex == tIndex )
     22:                      {
     23:                          try{
     24:                              item();
     25:                          }
     26:                          catch(e){
     27:                              if( abortWhenError ) tInfo.abort = true;
     28:                          }
     29:                          finally{
     30:                              tInfo.currentIndex ++;
     31:                          }
     32:                      }
     33:                      else
     34:                      {
     35:                          if( abortWhenError ) tInfo.abort = true;
     36:                      }
     37:                      return false;
     38:                  };
     39:              }(funcArray[i], tInfo.count ++));
     40:          }
     41:          
     42:          setTimeout(function(){
     43:        if( tInfo.count > 0 && tInfo.currentIndex == -1 )
     44:                  tInfo.currentIndex = 0;
     45:          },20); // 为了调试的原因,加了延迟启动
     46:      }
    由此,一个支持Copy&Paste的异步js函数库就完成了。具体的使用例子如下:
      1:      function testAsync()
      2:      {        
      3:          asyncSeq([function(){println("aSyncSeq -0 ");}
      4:              , function(){println("aSyncSeq -1 ");}
      5:              , function(){println("aSyncSeq -2 ");}
      6:              , function(){println("aSyncSeq -3 ");}
      7:              , function(){println("aSyncSeq -4 ");}
      8:              , function(){println("aSyncSeq -5 ");}
      9:              , function(){println("aSyncSeq -6 ");}
     10:              , function(){println("aSyncSeq -7 ");}
     11:              , function(){println("aSyncSeq -8 ");}
     12:              , function(){println("aSyncSeq -9 ");}

    (责任编辑:12图资源库)