Bootstrap

for 循环里调用ajax,for循环中ajax异步问题如何解决?

采用递归,直接看代码吧

function getData(idArr, i){

if (idArr.length) {

var id = idArr[0];

var url = getUrl(hqData.api,id);

console.log(i, 111)

$.ajax({

type: "GET",

url: url,

dataType: "jsonp",

jsonp:'cb',

async: true, //这里异步就好了

success:function(json){

if(!!json&& typeof json[0]=='string'){

console.log(json,222)

}

getData(idArr.shift(), ++i); //回调成功再进入下一次递归

},

error: function() {

getData(idArr.shift(), ++i); //如果ajax请求失败仍需要继续下一步递归

}

})

}

}

getData(hqData.idArr, 0)

;