我想继续检查列表,直到找到可用的项目。对于列表中的每个项目,它将发出一个发布请求以检查该项目是否可用。我想保持异步。另请注意,我使用的是 ajaxq 函数而不是 ajax 函数,那是因为我使用的是这个队列脚本http://code.google.com/p/jquery-ajaxq/。所以在它开始之前它不会结束。我确定那不是问题。
一旦项目可用,我需要一种方法来跳出循环,所以我不能只使用回调函数,因为它无法在函数内部跳出循环。所以我认为增加一个变量,如果它完成并使用一个do-while循环会起作用,但它只会冻结我的浏览器,就像它是一个永无止境的循环一样。
任何有关如何解决此问题或以更好的方式解决问题的建议都会很棒。
do {
var d = 0;
for(var i in list) {
var item = list[i];
$.ajaxq('queue', {
type: 'POST',
url: baseURL + '/ChangeItem/Check',
data: {
'newItem': item,
'purchaseItem': false
},
error: function(jqXHR, textStatus) {
alert(textStatus);
},
dataType: 'text',
success: function(data) {
if(thisObject.isNotTaken(data)) {
d++;
thisObject.claimItem();
}
}
});
}
} while(d == 0);