看这种同步方式处理怎么样,check中写定义判断条件逻辑,next中写下一步执行的操作
发布于 11 年前 作者 yakczh 3635 次浏览 最后一次编辑是 8 年前






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没办法封装起来,还是要暴露在外面

回到顶部