js循环发起ajax请求
工作中会遇到如下类似场景:
前端请求一个文章列表的接口A,A返回了所有的文章列表。而文章内容需要拿着A返回的每条Id去请求文章详情接口B.
这种情况下需要循环请求,因为ajax是异步的,会导致先执行了js循环。
解决方案:
async await 亲测有效
//模拟A接口返回的数据
const ArticleList = [{id:"001"},{id:"002"},{id:"003"}];
const handlesss = (data) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
let str = "这是携带ID "+ data + "请求回来的数据"
resolve(str);
}, 1000);
});
}
(async function(){
let arr = []
for(let i=0;i<ArticleList.length;i++){
arr.push(await handlesss(ArticleList[i].id))
}
console.log(arr)
})()