分割任务
2013-09-30 10:44
204 查看
function multistep(steps, args, callback){ var tasks = steps.concat(); setTimeout(function(){ var task = tasks.shift(); task.apply(null, args || []); // call / aplly 第一个参数是 null或者undefined的时候指向window 或者 Global if(tasks.length > 0){ // 检测还有没有其他步骤要处理 setTimeout(arguments.callee, 25); }else{ callback(); } }, 25); } function saveDocument(id,nd){ // 注意传参 var tasks = [openDocument, writeText, closeDocument, updateUI]; multistep(tasks, [id, nd], function(){ console.log("Save completed!"); }); } saveDocument({color : "red"},{name : "NICK"}); // 注意传参 function openDocument(n,m){console.log(n,m)} function writeText(n){console.log(n)} function closeDocument(n){console.log(n)} function updateUI(n){console.log(n)}
相关文章推荐
- 【转】梁漱溟:做学问的八个境界
- Linux 文件系统
- tuxedo远程客户端无法访问类故障(持续更新ing)
- UVa 495 - Fibonacci Freeze
- sencha touch之carousel
- mysql的一些基础知识点
- 关于“ORA-12545: 因目标主机或对象不存在,连接失败。”原因分析及解决方案
- 生产者消费者模式详解及代码实现
- [原]sencha touch之carousel
- dbca建库脚本——11g
- 修改 IIS 服务的会话时间(timeout)
- adb不能启动
- web前端学习笔记(CSS固定宽度布局)
- CUDA编程
- Courier-MTA 0.72 发布,电子邮件系统
- php调去存储过程
- Valid Sudoku
- 度娘你这是要干嘛
- 使用activex自动更新,部署多插件及插件更新
- 顺时针打印矩阵