node之请求管理器

当同时有很多请求发起时,会严重降低每个请求的响应速度,或导致接口请求失败,所以需要控制请求并发数,createRequestManage函数可以创建一个全局的请求管理器,管理请求,请求超过上限时,会将请求放入队列。

function createRequestManage(limit) { let currentTotal = 0 let todoList = [] return { schedule(callback) { if (currentTotal > limit) { todoList.push(callback) } else { currentTotal++ let next = () => { currentTotal-- if (todoList.length > 0) { let cb = todoList.shift() cb().finally(next) } } callback().finally(next) } } } }

【node之请求管理器】如何使用:
const requestManage = createRequestManage(500) request.schedule(()=> { axios.get('').then(res=>{}) })

    推荐阅读