基于Promise实现一个限制并发请求的函数
1.首先模拟一下请求方法
let getRequestFn = function(time){
return ()=>{
return new Promise((resolve,reject)=>{
setTimeout(() => {
resolve(time)
}, time);
})
}
} // 执行函数可返回一个自定义请求事件的函数,用来模拟请求
2.实现一个限制并发数量的方法
首先我们可以思考一下如何可以限制并发,无非就是用一个循环来判断当前的执行个数,如果小于限制个数就再次发送请求,很多小伙伴可能会写出这样的代码,比如:
function request(tasks,pool){
pool = pool || 5;
let results = [