关于js 方法同步问题 求高手解决,这个方法 怎么能像Java 那样执行啊

var cc=false;
var bb=false;

$('#start').click(function(){
    if(bb==true){
      //bb等于true执行后台方法
        query();
    }
   for(var i=0;i<10;i++){
      allCheck(i);//在这里就循环完了怎么能使他同步?
   } 
});

function allCheck(i){
    if(cc==false){
       $.ajax({
           async:false,
            url : "https://www.1688.com/index.jsonp?page="+i+"",
            type : "get",
            dataType : "jsonp",
            success : function (f) {
            f.rgv587_flag != undefined ? showLayerTips(f.url): showBestCategory(i,f);//

            }
            //爬网页结束
            });
    }
}
//获取成功执行
function showBestCategory(i,f){
   if(f!=null){
     bb=true;
   }else{
     bb=false;
   }
}

//弹出错误页面    
function  showLayerTips(url){
     cc =true;
}
//执行后台方法
function  query(){
    publicload(getRootPath() + "/searchRank","pageList","");
}

$('#start').click(function(){
if(bb==true){
//bb等于true执行后台方法
query(); //you回调函数的话,使用回调函数,没有的话可以设置同步方法 , 用定时器轮询是否函数执行成功,再继续执行
}
for(var i=0;i<10;i++){
allCheck(i);//在这里就循环完了怎么能使他同步?
}
});

能不能 给我个简单的例子

本来请求就是个异步的过程,除非你让后台写个callback回调函数 执行你的回调方法类似ajax success方法 在回调方法里调用循环。

首先,你的query方法是不是向后台发送请求了呢?如果是的话,你这段代码就有问题,只能通过回调在query返回后再同步处理了。
如果你的query就是普通方法,你这段代码就是顺序执行的。