Javascript异步数据的同步处理方法
数据处理方法封装
var DataWatch=(function(){
var gWatch={},cursor= 0,callback_key = 'callback',gMap={};
var check=function(cursor,name){
var _watcher=gWatch[cursor],itemCount = 0,resArr=[],flag=false;
if(!!map){
return;
}
if(name && typeof (_watcher[name]) === undefined){
return;
}
for(var key in _watcher){
if(key === callback_key){
continue;
}
if(gMap[key]){
_watcher[key]=true;
resArr.push(map[key]);
}
itemCount++;
}
if(resArr.length === itemCount){
_watcher[callback_key] && _watcher[callback_key].apply(this,resArr);
}
resArr=null;
};
return {
watch:function(name,callback){
//兼容watch单个内容
if(typeof(name) === 'string' ){
name=[name];
}
var _watcher={};
name.forEach(function(item){
_watcher[item]=false;
})
_watcher[callback_key]=callback;
cursor++;
gWatch[cursor]=_watcher;
check(cursor);
},
put:function(key,value){
gMap[key]=value;
for(var cursor in gWatch){
check(cursor,key);
}
}
}
})()
使用方法可以下面这样
func1.ajaxSucc:DataWatch.put(key1,value1)
func2.ajaxSucc:DataWatch.put(key2,value2)
func3.ajaxSucc:DataWatch.put(key3,value3) DataWatch.watch([key1,key2],function(value1,value2){
}) DataWatch.watch([key1,key3],function(value1,value3){
})
Javascript异步数据的同步处理方法的更多相关文章
- Vue.js的列表数据的同步更新方法
这次给大家带来Vue.js的列表数据的同步更新方法,Vue.js列表数据同步更新方法的注意事项有哪些,下面就是实战案例,一起来看一下. 数组的 push(),pop(),shift(),unshift ...
- [转载]Javascript异步编程的4种方法
NodeJs的最大特性就是"异步" 目前在NodeJs里实现异步的方法中,使用“回调”是最常见的. 其实还有其他4种实现异步的方法: 在此以做记录 --- http://www.r ...
- (转)javascript异步编程的四种方法
本文转自:http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html 作者:阮一峰 本文仅仅作为个人mark ...
- Javascript异步编程的4种方法
你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必 ...
- Javascript 异步编程的4种方法
你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排 ...
- Javascript 异步编程的4种方法详解
你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排 ...
- 转:Javascript异步编程的4种方法
你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排 ...
- Javascript异步编程的4种方法(阮一峰)
转载: http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html 你可能知道,Javascript语言的执 ...
- (转载)Javascript异步编程的4种方法
你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排 ...
随机推荐
- HDU 4709 Herding 几何题解
求全部点组成的三角形最小的面积,0除外. 本题就枚举全部能够组成的三角形,然后保存最小的就是答案了.由于数据量非常少. 复习一下怎样求三角形面积.最简便的方法就是向量叉乘的知识了. 并且是二维向量叉乘 ...
- QNX系统-关于delay函数与sleep函数的区别
QNX是类unix系统.在c语言编程过程中,往往会用到delay或者sleep延时函数.两者之间在使用上有一定的区别!!! delay()是循环等待,该进程还在运行,占用处理器. sleep()不同, ...
- .Net 配置文件——继承ConfigurationSection实现自己定义处理类处理自己定义配置节点
除了使用继承IConfigurationSectionHandler的方法定义处理自己定义节点的类.还能够通过继承ConfigurationSection类实现相同效果. 首先说下.Net配置文件里一 ...
- sap的示例代码
sap的示例代码查看1.在SE38环境下的程序名输入栏输入'DEMO*'后按F4,你可以查到SAP所有的DEMO示例程序,好好看看,你会学到很多ABAP功能的实现方法.2.运行“ABAPDOCU”T- ...
- 让notepad.exe的utf8不添加BOM
实在是厌烦了notepad的utf8模式了,于是决定修改之,方案如下: 使用任何支持hex模式的编辑器打开%SystemRoot%/system32/notepad.exe查找二进制串56 8D 45 ...
- Lucene.Net 2.3.1开发介绍 —— 三、索引(二)
原文:Lucene.Net 2.3.1开发介绍 -- 三.索引(二) 2.索引中用到的核心类 在Lucene.Net索引开发中,用到的类不多,这些类是索引过程的核心类.其中Analyzer是索引建立的 ...
- 向大家推荐个android的游戏引擎——cocos2d-x
最近发现单单用android自带的功能函数来编写游戏,往往有很大的局限性,即耗时长,调试繁琐,没有一定的框架.所以博主发现了游戏引擎这个好东西,游戏引擎所拥有的架构和功能函数,使得游戏的编写更加得心应 ...
- hdu1392 Surround the Trees 凸包
第一次做凸包,这道题要特殊考虑下,n=2时的情况,要除以二才行. 我是从最左边的点出发,每次取斜率最大的点,一直到最右边的点. 然后从最左边的点出发,每次取斜率最低的点,一直到最右边的点. #incl ...
- Swift - 滑块(UISlider)的用法
1,滑块的创建 1 2 3 4 5 6 var slider=UISlider(frame:CGRectMake(0,0,300,50)) slider.center=self.view.center ...
- crontab linux
第1列分钟1-59第2列小时1-23(0表示子夜)第3列日1-31第4列月1-12第5列星期0-6(0表示星期天)第6列要运行的命令 下面是crontab的格式:分 时 日 月 星期 要运行的命令 这 ...