Когда я передаю значение индекса в onLoad (), поэтому, когда он начинает работать в фоновом режиме, он будет использовать значение индекса для индексации массива. Проблема в том, как это выглядит, когда onLoad () начинает запускать значение индекса, на которое ссылается, всегда последний индекс.
Я попытался установить для каждого свойства запроса (XMLHttpRequest) индекс, который он должен использовать при запуске onLoad ().
setXMLOnLoad (request, index, chart) {
let lenOfEachArray = this.lenOfEachArray;
const wrapSensorArray = (index) => {return this.getSensorArray(index)};
const wrapSetSensorArray = (index, data) => {this.setSensorArray(index, data);};
//request.op = new Number(index);
request.op = index;
console.log(request.op); // reports 0 then 1 (fine)
request.onload = function () {
let sIndex = request.op; // reports 1 every time! (not fine)
console.log(sIndex);
}
}
createXMLRequests (chart) {
this.XMLRequestsArray = new Array(this.getNum()).fill(new XMLHttpRequest());
this.XMLRequestsArray.forEach((request,index) => {
this.setXMLOnLoad(request, index, chart);
});
}
sendXMLRequests (link) {
this.XMLRequestsArray.forEach((request, index) => {
let id = index + 1;
let finalLink = link.concat(`${id}`);
request.open("GET", finalLink);
request.send();
});
}
Ожидается, что request.op
вернет правильное значение индекса в onLoad (), который был предварительно назначен.