不同js异步函数同步的实现方法


Posted in Javascript onMay 28, 2016

不同函数达到同步的函数模拟

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异步函数同步的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
经常用的图片在容器中的水平垂直居中实例
Jun 10 Javascript
获取焦点时,利用js定时器设定时间执行动作
Apr 02 Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
Aug 03 Javascript
Knockoutjs的环境搭建教程
Nov 26 Javascript
判断复选框是否被选中的两种方法
Jun 04 Javascript
js实现鼠标经过时图片滚动停止的方法
Feb 16 Javascript
iframe里使用JavaScript控制主页转向的方法
Apr 03 Javascript
Javascript使用uploadify来实现多文件上传
Nov 16 Javascript
php 解压zip压缩包内容到指定目录的实例
Jan 23 Javascript
Angular刷新当前页面的实现方法
Nov 21 Javascript
webpack自动打包和热更新的实现方法
Jun 24 Javascript
微信接入之获取用户头像的方法步骤
Sep 23 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
May 28 #Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
May 28 #Javascript
jquery取消事件冒泡的三种方法(推荐)
May 28 #Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
May 28 #Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
May 28 #Javascript
jQuery Mobile动态刷新页面样式的实现方法
May 28 #Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
May 28 #Javascript
You might like
php出现Cannot modify header information问题的解决方法大全
2008/04/09 PHP
常用的PHP数据库操作方法(MYSQL版)
2011/06/08 PHP
php输出1000以内质数(素数)示例
2014/02/16 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
理解jquery事件冒泡
2016/01/03 Javascript
Angularjs中UI Router全攻略
2016/01/29 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
2016/02/28 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
BootStrap 超链接变按钮的实现方法
2016/09/25 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
2016/12/05 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
python实现按行分割文件
2019/07/22 Python
Python collections模块使用方法详解
2019/08/28 Python
python3检查字典传入函数键是否齐全的实例
2020/06/05 Python
浅析Python 多行匹配模式
2020/07/24 Python
python实现简单的五子棋游戏
2020/09/01 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
基于Jquery和Css3代码制作可以缩放的搜索框
2015/11/19 HTML / CSS
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
美国便宜的横幅和标志印刷在线:Best of Signs
2019/05/29 全球购物
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
化工工艺专业求职信
2013/09/22 职场文书
培训协议书范本
2014/04/22 职场文书
政府门卫岗位职责
2014/04/29 职场文书
计算机专业自荐信
2014/05/24 职场文书
政协委员个人总结
2015/03/03 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
2019毕业典礼主持词!
2019/07/05 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS
HttpClient实现表单提交上传文件
2022/08/14 Java/Android