看看下面的代码。问题很简单,如果方法 findUserInfo ajax 代码返回错误,我如何打破这个 for 循环。简而言之,我怎样才能随时摆脱这个 for 循环?是因为ajax调用是异步的吗?
jQuery.each(d, function() {
findUserInfo(this);
});
function findUserInfo(userID){
var req = $.ajax({
url: "http://twitter.com/users/show.json?suppress_response_codes&id=xx!5@x!!x",
dataType : "jsonp"
});
req.success(function(msg) {
console.log('Yes! Success!');
});
req.error(function(msg) {
console.log('Error');
});
}
最佳答案
是的,jQuery.ajax 是异步的,因此您需要使用类似以下内容的内容:
function findUserInfos(datas){
var userID=datas.shift(); //remove and return the first element
var req = $.ajax({
url: "http://twitter.com/users/show.json?suppress_response_codes&id=xx!5@x!!x",
dataType : "jsonp"
});
req.success(function(msg) {
console.log('Yes! Success!');
findUserInfos(datas)
});
req.error(function(msg) {
console.log('Error');
});
}
findUserInfos(d);
一旦出现错误,它就会崩溃,因为我们只在成功中继续。
关于javascript - 执行 ajax 调用时从 jquery for 循环中断返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10233374/