<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>并发请求数量限制</title>
</head>
<body><script>const request = new Promise((resolve,reject)=>{setTimeout(()=>{resolve({ code:200,message:'成功' })},2000)})const arr = Array.from({ length: 20 },(_,index)=>request)const getRequestList = async(list)=>{const max = 6const taskList = []let index = 0while(index < list.length - 1){const task = list[index]taskList.push(task)task.then((res)=>{taskList.splice(taskList.findIndex(i=>i === task))})if(taskList.length == max){//等待有请求成功 await Promise.race(taskList)}index ++}//等待所有请求执行完成await Promise.all(taskList)}getRequestList(arr)</script>
</body>
</html>