jQuery for循环进行了异步请求,怎么让它每一次循环完全执行完毕之后再执行下一个循环

for(var i = 0 ; i < arr.length ; i++){
jQuery.get(arr[i],function(data){
var reg = /"(.*?)"/g
var str1 = "";
data.replace(reg,function($1){
str1 += $1.slice(1,-1);
})

            console.log(str1);
        })
    }
这样子怎样才能让每次循环执行完毕之后才去执行下一次循环呢

不要用for循环写 用函数的回调来写这个循环
参考一下这个函数的调用方式

 <script>
    var i=0;
    run();
    function run(){
        console.log('这是第'+i+'次循环------------------------');
        console.log('在这做什么事情,比如你的ajax请求');
        console.log('请求回来了,数据有了,处理中...');
        console.log('接下来判断是否要进行下一次循环');
        if(i<10){
            i++;
            run();
        }else{
            console.log('循环完事了!');
        }
    }
</script>

$.ajaxSetup({
async: false
});
将异步设置为同步就可以一步一步的执行

for(var i = 0 ; i < arr.length ; i++){
fun(arr);
}

function fun(arr){
$.ajaxSetup({
async: false
});
jQuery.get(arr,function(data){
var reg = /"(.*?)"/g
var str1 = "";
data.replace(reg,function($1){
str1 += $1.slice(1,-1);
})
console.log(str1);
})
}

把请求提成一个函数像这样试试

同楼上,jqury ajax是可以设置为同步的。

如果你想这个页面直接显示完全而且正确,你这种我建议你在上一个页面先加载好,然后做浏览器存储,到了这个页面,可以直接读取数据,这样快的多,就不用考虑这个页面的同步异步导致出现的各种问题。

递归回调,直到不想回调了结束递归

定时器 设置一个全局变量 每执行完一次异步请求就改一下那个值,定时器循环校验那个值