不同js異步函數(shù)同步的實現(xiàn)方法
更新時間:2016年05月28日 14:37:34 投稿:jingxian
下面小編就為大家?guī)硪黄煌琷s異步函數(shù)同步的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
不同函數(shù)達到同步的函數(shù)模擬
funcList是函數(shù)執(zhí)行函數(shù)的隊列,其中回調(diào)函數(shù)中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;//同步標記量 })});//不同的異步函數(shù)添加進隊列 funcList.push(function(){funcTest(3,function(){ flag = true; })});//不同的異步函數(shù)添加進隊列 funcList.push(function(){funcTest(2,function(){ flag = true; })});//不同的異步函數(shù)添加進隊列 dealFuncSync(funcList); function dealFuncSync(funcList){ function callBackSync(){ if(!funcList||funcList.length==0){ console.log('end'); return; } flag = false; funcList.shift()(); setTimeout(function(){ if(flag) {//控制隊列函數(shù)同步 callBackSync(); }else{ setTimeout(arguments.callee,100); } },100); } callBackSync(); } </script>
以上這篇不同js異步函數(shù)同步的實現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用JavaScript和HTML5實現(xiàn)表單驗證功能
表單驗證是Web開發(fā)中不可或缺的一部分,它確保用戶輸入的數(shù)據(jù)符合預期格式和要求,通過客戶端驗證,我們可以提高用戶體驗,減少不必要的服務器請求,然而,客戶端驗證并不能替代服務器端驗證,所以本文將介紹如何使用JavaScript和HTML5實現(xiàn)強大的表單驗證,需要的朋友可以參考下2025-05-05JavaScript高階函數(shù)_動力節(jié)點Java學院整理
這篇文章主要介紹了JavaScript高階函數(shù),詳細講解了什么是高階函數(shù)和高階函數(shù)的用法,有興趣的可以了解下2017-06-06解決 viewer.js 動態(tài)更新圖片導致無法預覽的問題
Viewer.js 是一款強大的圖片查看器,這篇文章主要介紹了解決 viewer.js 動態(tài)更新圖片導致無法預覽的問題 ,需要的朋友可以參考下2019-05-05JavaScript高級教程之如何玩轉(zhuǎn)箭頭函數(shù)
箭頭函數(shù)是在es6中添加的一種規(guī)范,箭頭函數(shù)相當于匿名函數(shù),簡化了函數(shù)的定義,下面這篇文章主要給大家介紹了關(guān)于JavaScript高級教程之如何玩轉(zhuǎn)箭頭函數(shù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-11-11JavaScript中定時器setTimeout()和setInterval()的用法
本文詳細講解了JavaScript中定時器setTimeout()和setInterval()的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06