下面小编就为大家带来一篇不同 js 异步函数同步的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
不同函数达到同步的函数模拟
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 异步函数同步的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 phperz。
来源: http://www.phperz.com/article/17/0228/265369.html