当同时有很多请求发起时,会严重降低每个请求的响应速度,或导致接口请求失败,所以需要控制请求并发数,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=>{})
})
推荐阅读
- vue.js|vue中使用axios封装成request使用
- vue|电商后台管理系统(vue+python|node.js)
- node 与 ts-node
- 后端工作笔记
- 关于项目中 Repository 层的思考
- Egg框架应用Sequelize操作MySQL小结
- JS|Swiper插件的简单使用
- js|Node 微信支付 “由于商家传入的H5交易参数有误 该笔交易暂时无法完成 请联系商家解决”
- JavaWeb|电商后台管理系统项目后台项目的环境安装及配置