看这种同步方式处理怎么样,check中写定义判断条件逻辑,next中写下一步执行的操作
function wait(check,next,para){
var result=check.call(null,para);
if(result.finished){
next.call();
}else {
console.log('continue checking ...');
setTimeout( function(){
wait(check,next,result);
},100)
}
}
function next(){
console.log("next action");
}
function check(para){
var index=para.index;
index++;
if(index ==10){
para.finished=true;
}
para.index=index;
return para;
}
var para={finished:false,index:1};
wait(check,next,para);
1 回复
比如象一般的ajax请求可以这样写
比如ajax可以这样写
var para = {
finished: false,
data: ''
};
$.get("server.php", function(x) {
para.finished = true;
para.data = x;
});
wait(function() {
return (para.finished) ? true : false;
}, function() {
$("#log").html(para.data)
}, para);
这样写比原来那种一坨一坨的写法至少从代码思路上要顺一些 不过就是这个传递参数的para没办法封装起来,还是要暴露在外面