使用for循环发送ajax请求,请求全部完成之后再执行某个方法的js怎么写
时间: 2024-01-31 09:02:17 浏览: 191
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
你可以使用Promise和async/await来实现。具体的代码如下:
```javascript
async function sendAjax() {
const urls = ['url1', 'url2', 'url3']; // 请求的url列表
const promises = urls.map(url => {
return new Promise(resolve => {
$.ajax({
url: url,
success: function(data) {
resolve(data); // 将请求结果resolve出去
}
});
});
});
const results = await Promise.all(promises); // 等待所有请求完成
doSomething(results); // 所有请求完成之后执行某个方法
}
function doSomething(results) {
console.log('All requests are completed:', results);
}
```
在上面的代码中,我们定义了一个`sendAjax`函数,其中使用了`Promise.all`方法等待所有请求完成,然后再执行`doSomething`方法。在`sendAjax`函数中,我们首先定义了请求的url列表,然后使用`map`方法将每个url都封装成一个Promise对象。在每个Promise的`resolve`方法中,我们将请求结果resolve出去,这样在`Promise.all`方法中就可以获取到所有请求的结果了。最后,在`doSomething`方法中,我们可以处理所有请求的结果。
阅读全文