您的位置:首页 > 其它

分割任务

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)}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: