贴一个解决js异步并行等待的代码
2013-03-26 09:26
393 查看
var Y = YUI(); var EventProxy = function(){ this.event_list = {}; this.data_list = []; this.callback = null; this.trigger_flag = false; } EventProxy.prototype.assign = function(){ this.callback = Array.prototype.splice.call(arguments, arguments.length - 1, 1)[0]; if(typeof this.callback !== 'function'){ return false; } for(var i = 0,len = arguments.length; i < len; i++){ this.event_list[arguments[i]] = false; } } EventProxy.prototype.trigger = function(event_name, data){ if(!this.callback || this.event_list[event_name]){ return false; } this.event_list[event_name] = true; this.data_list.push(data); this.trigger_flag = true; for(var key in this.event_list){ if(this.event_list.hasOwnProperty(key) && !this.event_list[key]){ this.trigger_flag = false; } } if(this.trigger_flag){ this.callback.apply(null, this.data_list); } } var proxy = new EventProxy(); proxy.assign('event1', 'event2', 'event3', function(v1, v2, v3){ Y.log(v1 + ' ' + v2 + ' ' + v3); }) proxy.trigger('event1', 'data1'); proxy.trigger('event2', 'data2'); proxy.trigger('event3');
相关文章推荐
- 一个解决js浮点运算精度的代码
- RequireJS解决代码依赖问题,异步加载js,避免页面失去相应
- 解决了在某个页面的js代码中替换另外一个frame中页面的问题
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- [分享兼散分]一个好网址,大量有用JS,代码可下载
- 概述 RequireJS是一个工具库,主要用于客户端的模块管理。它可以让客户端的代码分成一个个模块,实现异步或动态加载,从而提高代码的性能和可维护性。它的模块管理遵守AMD规范(Asynchronou
- 写了一个最简单的 js 模板引擎,直接贴代码
- eclipse修改一下代码,保存就弹一个警告框,解决办法
- 在Java导出数据创建excel表时候出现json对话框或者出现一个带有js代码的东西
- 非常不错的一个JS分页效果代码,值得研究
- js查看一个函数的执行时间实例代码
- 异步动态加载js与css文件的js代码
- 一个面向对象的JS例子,很好的支持了开闭原则(不要重复你昨天的代码)
- 转一个js rgb颜色转16进制格式的代码
- spring mvc 下使用ajaxfileupload.js 异步上传文件 并返回信息 各种问题解决
- js模块化开发---js大项目代码组织和多人协作的解决之道
- 4、搭建一个后台服务器--服务端代码(异步,大并发)
- asyn-await.js 一个按顺序阻塞调用的 轻量级异步库
- 一个符号插入器 中用到的js代码
- JS 代码编一个倒时器