不同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-onload让第一次页面加载时图片是淡入方式显示
May 23 Javascript
日历查询的算法 如何计算某一天是星期几
Dec 12 Javascript
IE中getElementsByName()对有些元素无效的解决方案
Sep 28 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
Feb 13 Javascript
JQuery中Bind()事件用法分析
May 05 Javascript
JavaScript多图片上传案例
Sep 28 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
Feb 15 Javascript
Vue 父子组件、组件间通信
Mar 08 Javascript
微信小程序 开发之全局配置
May 05 Javascript
Angular学习笔记之集成三方UI框架、控件的示例
Mar 23 Javascript
iview同时验证多个表单问题总结
Sep 29 Javascript
js实现计时器秒表功能
Dec 16 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小教程之实现双向链表
2014/06/12 PHP
PHP 信号管理知识整理汇总
2017/02/19 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
php文件后缀不强制为.php的实操方法
2019/09/18 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
JavaScript入门教程(8) Location地址对象
2009/01/31 Javascript
javascript 简单抽屉效果的实现代码
2010/03/09 Javascript
javascript实现上传图片并预览的效果实现代码
2011/04/11 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
详解js中构造流程图的核心技术JsPlumb
2015/12/08 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
Python实现的网页截图功能【PyQt4与selenium组件】
2018/07/12 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
Python经纬度坐标转换为距离及角度的实现
2020/11/01 Python
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
医科大学生的自我评价
2013/12/04 职场文书
总经理的岗位职责
2014/02/23 职场文书
细节决定成败演讲稿
2014/05/12 职场文书
公务员考察材料
2014/12/23 职场文书
故宫的导游词
2015/01/31 职场文书
辞职书格式样本
2015/02/26 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
浅谈Python魔法方法
2021/06/28 Java/Android
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android