不同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 相关文章推荐
ExtJS 2.0 GridPanel基本表格简明教程
May 25 Javascript
自己写的Javascript计算时间差函数
Oct 28 Javascript
JS实现静止元素自动移动示例
Apr 14 Javascript
jquery禁止回车触发表单提交
Dec 12 Javascript
javascript实现控制文字大中小显示
Apr 28 Javascript
js实现左侧网页tab滑动门效果代码
Sep 06 Javascript
解析javascript瀑布流原理实现图片滚动加载
Mar 10 Javascript
jQuery的promise与deferred对象在异步回调中的作用
May 03 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
Dec 28 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
Feb 22 Javascript
p5.js临摹旋转爱心
Oct 23 Javascript
vue动态渲染svg、添加点击事件的实现
Mar 13 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网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
PHP使用Redis实现Session共享的实现示例
2019/05/12 PHP
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
Jquery上传插件 uploadify v3.1使用说明
2012/06/18 Javascript
js判断屏幕分辨率的代码
2013/07/16 Javascript
jquery中get和post的简单实例
2014/02/04 Javascript
js密码强度校验
2015/11/10 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
2016/02/17 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
JavaScript日期选择功能示例
2017/01/16 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
jQuery获取复选框选中的当前行的某个字段的值
2017/09/15 jQuery
微信小程序实现城市列表选择
2018/06/05 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
2018/08/27 Javascript
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
2018/11/02 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
Angular8基础应用之表单及其验证
2019/08/11 Javascript
搭建vscode+vue环境的详细教程
2020/08/31 Javascript
JavaScript 实现轮播图特效的示例
2020/11/05 Javascript
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python实现字符串逆序输出功能示例
2017/06/24 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
Python OpenCV处理图像之图像直方图和反向投影
2018/07/10 Python
为什么Python中没有&quot;a++&quot;这种写法
2018/11/27 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
四风问题自查报告剖析材料
2014/02/08 职场文书
大学生素质拓展活动方案
2014/02/11 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
JS中一些高效的魔法运算符总结
2021/05/06 Javascript