利用可能なアイテムが見つかるまでリストをチェックし続けたい。リスト内の各アイテムに対して、アイテムが利用可能かどうかを確認するためにポスト リクエストが作成されます。非同期にしておきたい。また、私は ajax 関数ではなく ajaxq 関数を使用していることにも注意してください。これは、このキューイング スクリプト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);