複数の非同期 AJAX 呼び出しを循環するループがあります。呼び出しには、ループの繰り返しがインデックスとして渡されます。呼び出しが完了すると、インデックスに応じてデータが配列に格納されます。
ただし、success 関数で返されるインデックスは、最初の AJAX 呼び出しに渡されるインデックスとは異なります。呼び出しが最初に供給されたのと同じインデックスを成功時に返す良い方法はありますか?
var ptype = 'fp';
var pnum = 2;
var data = new Array();
for(var i = 1; i <= 5; i++){
call_general_forecast(ptype,i,pnum);
}
function call_general_forecast(ptype, i1, pnum1){
index = pnum1*5 + i1;
$.ajax({
url: '',
data : { stock_name : stock_name, pattern: ptype, specificity : i1},
type : 'get', //or 'post', but in your situation get is more appropriate,
dataType : 'json',
success : function(r) {
data[index] = r;
alert(index);
},
async: true
});
}