不同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的获取mouse坐标插件的实现代码
Apr 01 Javascript
Extjs显示从数据库取出时间转换JSON后的出现问题
Nov 20 Javascript
返回页面顶部top按钮通过锚点实现(自写)
Aug 30 Javascript
Angularjs 设置全局变量的方法总结
Oct 20 Javascript
jquery实现图片列表鼠标移入微动
Dec 01 Javascript
Bootstrap下拉菜单样式
Feb 07 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
Mar 21 Javascript
浅谈原型对象的常用开发模式
Jul 22 Javascript
JavaScript 下载svg图片为png格式
Jun 21 Javascript
Vue-component全局注册实例
Sep 06 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
Dec 06 Javascript
Vue-router中hash模式与history模式的区别详解
Dec 15 Vue.js
前端学习笔记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作为网站开发语言的原因分享
2012/01/03 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
详解PHP序列化反序列化的方法
2015/10/27 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
PHP iconv()函数字符编码转换的问题讲解
2019/03/22 PHP
JS模拟多线程
2007/02/07 Javascript
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
sails框架的学习指南
2014/12/22 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
2018/11/08 Javascript
Angular刷新当前页面的实现方法
2018/11/21 Javascript
Vue动态组件和异步组件原理详解
2019/05/06 Javascript
通过实践编写优雅的JavaScript代码
2019/05/30 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
vue实现购物车功能(商品分类)
2020/04/20 Javascript
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
python中的多线程实例教程
2014/08/27 Python
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
python下载图片实现方法(超简单)
2017/07/21 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
财务出纳员岗位职责
2013/11/26 职场文书
2014村务公开实施方案
2014/02/25 职场文书
人事行政专员岗位职责
2014/07/23 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
涉外离婚协议书怎么写
2014/11/20 职场文书
汶川大地震感悟
2015/08/10 职场文书
python中requests库+xpath+lxml简单使用
2021/04/29 Python