不同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 UI Autocomplete 体验分享
Feb 14 Javascript
jQuery自定义事件的简单实现代码
Jan 27 Javascript
JS实现网页表格自动变大缩小的方法
Mar 09 Javascript
微信公众平台开发教程(五)详解自定义菜单
Dec 02 Javascript
源码分析Vue.js的监听实现教程
Apr 23 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
Sep 19 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
Dec 18 Javascript
angularjs手动识别字符串中的换行符方法
Oct 02 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
Jan 07 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
Aug 07 Javascript
深入理解Vue keep-alive及实践总结
Aug 21 Javascript
js前端设计模式优化50%表单校验代码示例
Jun 21 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中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
PHP连接MongoDB示例代码
2012/09/06 PHP
PHP基于DOM创建xml文档的方法示例
2017/02/08 PHP
JQuery入门—编写一个简单的JQuery应用案例
2013/01/03 Javascript
文本框回车提交与禁止提交示例
2013/09/27 Javascript
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
javascript 数组操作详解
2015/01/29 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
2016/02/25 Javascript
学习vue.js计算属性
2016/12/03 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
详解Ubuntu安装angular-cli遇到的坑
2018/09/08 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
2018/12/23 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
使用Python对MySQL数据操作
2017/04/06 Python
Python中的 enum 模块源码详析
2019/01/09 Python
详解python解压压缩包的五种方法
2019/07/05 Python
优衣库英国官网:UNIQLO英国
2016/12/25 全球购物
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
Waterford英国官方网站:世界上最受欢迎的优质水晶品牌
2019/08/17 全球购物
物业管理员岗位职责范文
2013/11/25 职场文书
银行求职信范文
2014/05/26 职场文书
村级个人对照检查材料
2014/08/22 职场文书
工作经历证明书范文
2014/11/02 职场文书
小学优秀学生评语
2014/12/29 职场文书
大学毕业生个人总结
2015/02/28 职场文书
护理培训心得体会
2016/01/22 职场文书
技术转让协议书
2016/03/19 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python