gpt4 book ai didi

javascript - 如何取消for循环内的所有ajax请求

转载 作者:行者123 更新时间:2023-11-29 20:54:09 28 4
gpt4 key购买 nike

如何取消for循环处理的所有ajax请求

var url = ["www.example.com","www.example2.com",....];

for (var i = 0; i < url.length; i++) {

var XHR =$.get(url[i], function(data) {
//stuff to do

});
}

尝试使用

XHR.abort()

但它只取消最后一个循环

最佳答案

它只停止最后一个请求,因为您在 for 循环中重复分配 AJAX 调用的引用。因此,当循环结束时,您将在 XHR 变量中获得最后一次 AJAX 调用的引用。

XHR 上调用abort() 只会停止最后一个请求。为了缓解,您需要将所有 AJAX 请求放在第二个数组中,并在其上循环以停止每个请求:

var url = ["www.example.com","www.example2.com",....];
// Create a second array to hold the references of AJAX requests
var requests = [];

for (var i = 0; i < url.length; i++) {
var XHR = $.get(url[i], function(data) {
// do stuff here
});

// Add the AJAX reference to the array
requests.push(XHR);
}

// To stop all requests:
requests.forEach(request => request.abort());

关于javascript - 如何取消for循环内的所有ajax请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50196232/

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