不同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 相关文章推荐
9个javascript语法高亮插件 推荐
Jul 18 Javascript
jquery DOM操作 基于命令改变页面
May 06 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
Jan 15 Javascript
js实现快速分享功能(你的文章分享工具)
Jun 25 Javascript
from表单多个按钮提交用onclick跳转不同action
Apr 24 Javascript
利用JavaScript脚本实现滚屏效果的方法
Jul 07 Javascript
基于jQuery实现动态数字展示效果
Aug 12 Javascript
JavaScript实现分页效果
Mar 28 Javascript
vue-cli项目无法用本机IP访问的解决方法
Sep 20 Javascript
jQuery实现的简单日历组件定义与用法示例
Dec 24 jQuery
微信小程序sessionid不一致问题解决
Aug 30 Javascript
JavaScript中关于预编译、作用域链和闭包的理解
Mar 31 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简洁函数小结
2011/08/12 PHP
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
2015/04/21 PHP
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
详解JavaScript的策略模式编程
2015/06/24 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
深入浅出 jQuery中的事件机制
2016/08/23 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
除Console.log()外更多的Javascript调试命令
2018/01/24 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python使用turtule画五角星的方法
2015/07/09 Python
python中使用print输出中文的方法
2018/07/16 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
python函数定义和调用过程详解
2020/02/09 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
Python实现代码块儿折叠
2020/04/15 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
翻译专业应届生求职信
2013/11/23 职场文书
出纳岗位职责范本
2013/12/01 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
2015年路政工作总结
2015/05/22 职场文书
小学入学感言
2015/08/01 职场文书
Python制作春联的示例代码
2022/01/22 Python
NASA 机智号火星直升机拍到了毅力号设备碎片
2022/04/29 数码科技
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript