JavaScript框架设计-异步处理
2015-09-30 00:00
573 查看
setTimeout和setInterval
Mochikit Deferred
JSDeferred
jQuery Deferred
Promise/A 与 mmDeferred
javascript 异步处理的前景
最简单的一个案例实现思路:通过一个变量和一个数组来实现,变量表示是否有方法正在执行,然后用数组组织需要异步处理的方法,
通过每个调用方法调用success 来实现后续方法的调用。
function ExecuteQueue(){ this.queue = []; this.executing = false; } ExecuteQueue.prototype = { then:function(foo){ if(this.executing){ this.queue.push(foo); } else{ var that = this; foo(function(){ that.executing = false; that.next(); }) } }, next:function(){ if(this.queue.length > 0){ var foo = this.queue.shift(); var that = this; foo(function(){ that.executing = false; that.next(); }) } } } function a(success,failure){ console.log('a'); success(); } function b(success,failure){ console.log('b'); success(); } function c(success,failure){ console.log('c'); success(); } // 使用 var queue = new ExecuteQueue(); queue.then(a).then(b).then(c); //a //b //c
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- IE8开发人员工具教程(二)
- 在flex中执行一个javascript方法的简单方式
- Flex结合JavaScript读取本地路径的方法
- PowerShell中执行Javascript的方法示例
- javascript asp教程第六课-- response方法
- javascript asp教程More About Recordsets
- javascript asp教程第十二课---session对象