我正在Jscript(ECMAScript 3)中使用MSXML2.ServerHTTP来检索一些数据-我发送了多个请求(因为每个请求只能检索1000行)。多个请求的数量随总数的变化而变化。请求中包括的功能是一旦接收到数据就处理数据(将其推入数组)。代码类似于以下内容;
var H = []; x = 0
for (var i = 0; i<L; i +=1000)
{H.push(new ActiveXObject('MSXML2.ServerXMLHTTP'));}
for (var i = 0; i<L; i +=1000)
{H[x].open('GET', 'https://someurl.com', true);
H[x].setRequestHeader('Content-Type', 'application/json');
H[x].onreadystatechange =
function(e)
{if (H[x].readyState === 4 && H[x].status === 200)
{J.push(H[x].responseText);}};
H[x].send(); x++}
所以发生的是我的循环运行了5次(例如L为4700),并且X从0递增到4-但是,一旦检索到数据,函数“ e”就会查看,然后的值,而不是初始化时的值。
因此,假设第二个数据请求返回了-它看到完成,执行函数e,但是该函数查看x的当前值(5个循环后为5),因此不执行任何操作没有H [5] ...
在该循环中是否可以将x的值设置为常量?
谢谢!