javascript - 在 for 循环中运行的 AJAX - for 循环后的回调函数
问题描述
所以我有一个在 for 循环中执行 ajax 调用的函数。当整个 for 循环完成时,我需要回调另一个函数。由于 ajax 调用是异步运行的,所以一旦 for 循环完成,我就无法调用下一个函数。
这是我的代码:
for(let i=0; i< industryArray.length; i++){
$.ajax({
url: myurl + "_api/web/lists/GetByTitle('library')/items",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: function (data) {
RejectedSalesCount += data.d.results.length;
},
error: function (data) {
}
})
}
// Need to call myfunction() here
myfunction()
甚至在执行 ajax 调用之前就被调用。谢谢!
解决方案
var pendingRequests=0;
for(let i=0; i< industryArray.length; i++){
if (condition) {
pendingRequests++;
$.ajax({
url: myurl + "_api/web/lists/GetByTitle('library')/items",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: function (data) {
RejectedSalesCount += data.d.results.length;
pendingRequests--;
if(pendingRequests===0) {
otherFunction()
}
},
error: function (data) {
doSomethingWithError(data)
}
})
}
}
推荐阅读
- angular - 带有自定义组件的角包裹角材料标签组件
- python - 将列转换为百分位数以制作条形图
- javascript - 时间怎么不会减1?
- function - What is the difeerence between parent function and child function in xpath of selenium
- python - 如何使用 Selenium Web Scraping 创建 Python 字典?
- .net-core - Linux 上的 Dotnet 3.1 应用程序会炸毁所有 RAM
- html - 如何排除儿童
- 来自 CSS 样式
- java - Spring + maven + 自定义密钥库 = maven 构建错误
- javascript - 无法在另一个文件 (node.js) 中导入函数
- python - 检测散列的单词和短语以掩盖它们