<!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 = 6
const taskList = []
let index = 0
while(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>
并发请求数量限制
于 2024-07-01 17:04:06 首次发布