js实现ajax多个异步请求串行执行
时间: 2023-11-27 10:02:30 浏览: 55
如果要实现多个 AJAX 异步请求串行执行,可以使用 Promise 和 async/await,或者使用 jQuery 的 $.Deferred() 方法。
方法一:Promise 和 async/await
使用 Promise 和 async/await 可以实现多个 AJAX 异步请求串行执行,可以先定义一个数组,然后使用 for 循环依次发起异步请求,等待前一个请求完成后再发起下一个请求。代码如下:
```javascript
async function fetchData() {
const urls = ['url1', 'url2', 'url3'];
for (let i = 0; i < urls.length; i++) {
const data = await fetch(urls[i]);
console.log(data);
}
}
fetchData();
```
方法二:jQuery 的 $.Deferred()
使用 jQuery 的 $.Deferred() 方法可以实现多个 AJAX 异步请求串行执行,可以先定义一个数组,然后使用 $.Deferred() 方法依次发起异步请求,等待前一个请求完成后再发起下一个请求。代码如下:
```javascript
const urls = ['url1', 'url2', 'url3'];
const fetchData = function() {
let d = $.Deferred().resolve();
$.each(urls, function(i, url) {
d = d.then(function() {
return $.ajax(url);
}).then(function(data) {
console.log(data);
});
});
return d;
};
fetchData();
```