当每个循环中的所有ajax调用成功时,可以使用JavaScript的Promise对象来实现执行操作。Promise对象可以帮助我们处理异步操作,例如ajax调用,并在所有调用成功后执行操作。
以下是一个示例代码:
// 定义一个函数,用于发送ajax请求
function sendAjaxRequest(url) {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.onload = function() {
if (xhr.status === 200) {
resolve(xhr.response);
} else {
reject(Error(xhr.statusText));
}
};
xhr.onerror = function() {
reject(Error('Network Error'));
};
xhr.send();
});
}
// 定义一个数组,用于存储ajax请求的URL
var urls = ['url1', 'url2', 'url3'];
// 使用Promise.all方法,等待所有ajax请求成功后执行操作
Promise.all(urls.map(sendAjaxRequest))
.then(function(responses) {
// 所有ajax请求成功后执行的操作
console.log('All ajax requests succeeded');
// 处理响应数据
responses.forEach(function(response) {
console.log(response);
});
})
.catch(function(error) {
console.log('An error occurred: ' + error.message);
});
在上述代码中,我们首先定义了一个sendAjaxRequest
函数,用于发送ajax请求并返回一个Promise对象。然后,我们定义了一个包含多个URL的数组,用于发送ajax请求。接下来,我们使用Promise.all
方法等待所有ajax请求成功后执行操作。在.then
方法中,我们可以处理响应数据并执行操作。在.catch
方法中,我们可以处理错误情况。
需要注意的是,上述代码中的sendAjaxRequest
函数是一个示例,实际情况下可能需要根据具体需求进行修改。同时,在实际开发中,为了避免因跨域问题而无法发送ajax请求,可以使用跨域请求库,例如axios。
领取专属 10元无门槛券
手把手带您无忧上云