不同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 相关文章推荐
基于jquery的jqDnR拖拽溢出的修改
Feb 12 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
Dec 04 Javascript
深入理解javascript中defer的作用
Dec 11 Javascript
node.js解决获取图片真实文件类型的问题
Dec 20 Javascript
JS建造者模式基本用法实例分析
Jun 30 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
Aug 24 Javascript
javascript日期处理函数,性能优化批处理
Sep 06 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
Jun 28 Javascript
Node.js如何响应Ajax的POST请求并且保存为JSON文件详解
Mar 10 Javascript
js实现单张图片平移切换效果
Oct 11 Javascript
javascript数据类型中的一些小知识点(推荐)
Apr 18 Javascript
Javascript执行上下文顺序的深入讲解
Nov 04 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
基于Linux调试工具strace与gdb的常用命令总结
2013/06/03 PHP
单台服务器的PHP进程之间实现共享内存的方法
2014/06/13 PHP
PHP面向对象自动加载机制原理与用法分析
2016/10/14 PHP
PHPCMS手机站伪静态设置详细教程
2017/02/06 PHP
IE8 原生JSON支持
2009/04/13 Javascript
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
2010/03/23 Javascript
js封装的textarea操作方法集合(兼容很好)
2010/11/16 Javascript
在标题栏显示新消息提示,很多公司项目中用到这个方法
2011/11/04 Javascript
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
WEB前端设计师常用工具集锦
2014/12/09 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
通过bootstrap全面学习less
2016/11/09 Javascript
js实现一键复制功能
2017/03/16 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
three.js中3D视野的缩放实现代码
2017/11/16 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
[02:52]2017DOTA2国际邀请赛中国区预选赛晋级之路
2017/07/03 DOTA
Python程序设计入门(4)模块和包
2014/06/16 Python
pytorch数据预处理错误的解决
2020/02/20 Python
shell变量的作用空间是什么
2013/08/17 面试题
会计毕业生求职简历的自我评价
2013/10/20 职场文书
机械设计毕业生自荐信
2014/02/02 职场文书
大学生毕业自我鉴定范文
2014/02/03 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
2015年党建工作总结
2015/03/30 职场文书
2016年区委书记抓基层党建工作公开承诺书
2016/03/25 职场文书
Redis IP地址的绑定的实现
2021/05/08 Redis
 分享一个Python 遇到数据库超好用的模块
2022/04/06 Python