gpt4 book ai didi

javascript - 多个 XMLHttpRequests JavaScript

转载 作者:行者123 更新时间:2023-11-29 16:52:27 25 4
gpt4 key购买 nike

我有以下代码:

for(var i=0;i<searchParamLength;i++)
{
(function(i){
url = "https://www.googleapis.com/customsearch/v1?q=" + searchParam[i] + "&cx=005894674626506192190:j1zrf-as6vg&key=AIzaSyCanPMUPsyt3mXQd2GOhMZgD4l472jcDNM&dateRestrict=" + date_length;

arrXhr[i] = new XMLHttpRequest();

arrXhr[i].open("GET", url, true);

arrXhr[i].onreadystatechange = function(){

var totalResults = 0;

if (arrXhr[i].readyState === 4 && arrXhr[i].status == 200)
{
totalResults = JSON.parse(arrXhr[i].responseText).searchInformation.totalResults;

console.log("Variable I: " + i + "Total results:" + totalResults);

totalResultsArr.push(totalResults);
}

};

arrXhr[i].send(null);

})(i);

}

看看我的循环内部,我有一个 console.log()。我在我的代码中遇到了一些奇怪的行为,这就是为什么我决定检查循环是否按预期运行的原因。确实,请看下图。循环以一种奇怪的方式执行。它是先执行 i=1 然后执行 i=6 然后执行 i=2,等等。

我一直在研究 SO,我看到了以下内容 question但它并没有帮助我解决我的问题。任何人都知道为什么会这样吗?

enter image description here

最佳答案

请求是异步的。无法保证它们会按照您创建它们的顺序完成 - 这就是为什么您在回调中看不到 i 的连续值。

关于javascript - 多个 XMLHttpRequests JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34998449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com