DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 不同js異步函數同步的實現方法
不同js異步函數同步的實現方法
編輯:關於JavaScript     

不同函數達到同步的函數模擬

funcList是函數執行函數的隊列,其中回調函數中flag=true是同步標記量

<script>
var flag = false;
function funcTest(t,func){
  setTimeout(function(){
   (function(param){
     console.log(param);
     func();
   }(t));
   },t*1000);
}
var funcList = [];
funcList.push(function(){funcTest(4,function(){
  flag = true;//同步標記量
})});//不同的異步函數添加進隊列
funcList.push(function(){funcTest(3,function(){
  flag = true;
})});//不同的異步函數添加進隊列
funcList.push(function(){funcTest(2,function(){
  flag = true;
})});//不同的異步函數添加進隊列
dealFuncSync(funcList);
function dealFuncSync(funcList){
  function callBackSync(){
   if(!funcList||funcList.length==0){
     console.log('end');
     return;
   }
   flag = false;
   funcList.shift()();
   setTimeout(function(){
      if(flag) {//控制隊列函數同步
       callBackSync();
      }else{
       setTimeout(arguments.callee,100);
      }
   },100);
  }
  callBackSync();
}
</script>

以上這篇不同js異步函數同步的實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved