不同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 相关文章推荐
JS面向对象、prototype、call()、apply()
May 14 Javascript
实测jquery data()如何存值
Aug 18 Javascript
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
Nov 05 Javascript
JS正则验证邮箱的格式详细介绍
Nov 19 Javascript
jQuery之简单的表单验证实例
Jul 07 Javascript
原生js实现选项卡功能
Mar 08 Javascript
Vue.js路由vue-router使用方法详解
Mar 20 Javascript
二维码图片生成器QRCode.js简单介绍
Aug 18 Javascript
微信小程序实现下拉刷新和轮播图效果
Nov 21 Javascript
JS装饰器函数用法总结
Apr 21 Javascript
vue实现修改图片后实时更新
Nov 14 Javascript
JavaScript仿京东秒杀倒计时
Mar 17 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 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
PHP 代码简洁之道(小结)
2019/10/16 PHP
Google Map Api和GOOGLE Search Api整合实现代码
2009/07/18 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
Checbox的操作含已选、未选及判断代码
2013/11/07 Javascript
js获取当前路径的简单示例代码
2014/01/08 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
AngularJS 基础ng-class-even指令用法
2016/08/01 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
2017/08/16 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
layui点击按钮添加可编辑的一行方法
2018/08/15 Javascript
使用jquery Ajax实现上传附件功能
2018/10/23 jQuery
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
基于numpy.random.randn()与rand()的区别详解
2018/04/17 Python
python实现汉诺塔算法
2021/03/01 Python
Python实现按逗号分隔列表的方法
2018/10/23 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
numpy.ndarray 实现对特定行或列取值
2019/12/05 Python
python代码实现将列表中重复元素之间的内容全部滤除
2020/05/22 Python
python中前缀运算符 *和 **的用法示例详解
2020/05/28 Python
python用tkinter实现一个gui的翻译工具
2020/10/26 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
Douglas意大利官网:购买香水和化妆品
2020/05/27 全球购物
酒店副总岗位职责
2013/12/24 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
小学班主任事迹材料
2014/12/17 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书