解决请求数据量过大,分批多次请求的问题
相信大家偶尔会遇到某个请求数据量过大,需要分批多次请求的问题,这里举例按小时分批多次请求:
import moment from 'moment' // 引入moment时间插件
// 创建请求,请求数据
function stepRequestPro (params, index, collectArr) {return new Promise((resolve, reject) => {// requestName 自定义的请求名requestName(params).then(({ data: { obj } }) => {// 写请求成功后,需要处理的逻辑resolve(obj || [])}).catch(() => {resolve([])})})
}
// 比如需要请求当天0点到当前时段的数据
let startTime = moment().format('YYYY-MM-DD') + '00:00:00'
let endTime = moment().format('YYYY-MM-DD HH:mm:ss')
let promiseArr = [] // 请求的promise数组
let hourLength = 24
let requestStep = 2 // 请求数据的时间间隔,默认为分批请求2小时的数据,设置步长后请求时间会累加
let collectArr = [] // 收集每次请求的数据
for (let i = 0; i < hourLength; i++) {if (startTime && endTime) {if ((parseInt(moment(startTime).add((requestStep * (i + 1)), 'hours').format('YYYYMMDDHHmmss')) < parseInt(moment(endTime).format('YYYYMMDDHHmmss')))) {promiseArr.push(stepRequestPro({startTime: (i === 0 ? (moment(startTime).format('YYYY-MM-DD 00:00:00')) : (moment(startTime).add((requestStep * (i)), 'hours').format('YYYY-MM-DD HH:mm:ss'))),endTime: moment(startTime).add(requestStep * (i + 1), 'hours').format('YYYY-MM-DD HH:mm:ss')}, i, collectArr))} else {promiseArr.push(stepRequestPro({startTime: (i === 0 ? (moment(startTime).format('YYYY-MM-DD 00:00:00')) : (moment(startTime).add((requestStep * (i)), 'hours').format('YYYY-MM-DD HH:mm:ss'))),endTime: moment(endTime).format('YYYY-MM-DD HH:mm:ss')}, i, collectArr))break}}
}
if (promiseArr?.length > 0) {Promise.all(promiseArr).then(res => {console.log(res, '请求全部完成的数据')})
}
最后,原创不易,如本文对您有所帮助,麻烦点赞收藏一下谢谢!
解决请求数据量过大,分批多次请求的问题相关推荐
- python not defined怎么解决_数据量太大?散点图装不下怎么办?用Python解决数据密度过大难题
当我们需要观察比较2个变量间的关系时,散点图是我们首选图表. 可当数据量非常大,数据点又比较集中在某个区间中,图表没法看,密密麻麻的怎么看? 怎么办?这时候就得看密度图了 什么是密度图? 所谓的密度图 ...
- java导出Excel增加下拉框选项,解决小数据量和大数据量下拉框选项的问题
文章目录 java导出Excel增加下拉框选项 一.小数据量情况 二.大数据量情况 java导出Excel增加下拉框选项(java结合easyExcel) 添加传参模型ConsumablesAddDT ...
- POST请求数据量过大,后端请求获取参数为null
String xxxxx = request.getParameter("xxxx"); //此值为前端js获取的文件的Base64字符串,通过post请求提交至后台 当文件小于2 ...
- 报错 插入更新_window如何解决mysql数据量过大导致的报错
window如何解决报错"The total number of locks exceeds the lock table size" 第一大步,查看mysql配置信息 在CMD中 ...
- mysql my.ini位置错误_解决mysql导入数据量很大导致失败及查找my.ini 位置(my.ini)在哪...
数据库数据量很大的数据库导入到本地时,会等很久,然而等很久之后还是显示失败: 这是就要看看自己本地的没mysql是否设置了超时等待,如果报相关time_out这些,可以把mysql.ini尾部添加ma ...
- 解决Mysql数据量大的时候 分页优化(使用limit)的问题
解决Mysql数据量大的时候 分页优化(使用limit)的问题 参考文章: (1)解决Mysql数据量大的时候 分页优化(使用limit)的问题 (2)https://www.cnblogs.com/ ...
- vue+cesium cesium数据量太大导致浏览器卡顿解决办法
vue+cesium cesium数据量太大 导致浏览器卡顿 解决办法 解决方案 : 不要把任何的cesium对象 放在data中监听,因为在data中的变量 , vue会劫持数据 , 导致迟缓. 解 ...
- vue+cesium cesium数据量太大 导致浏览器卡顿 解决办法
如题 博主在开发过程中遇到了问题就是 当数据量过大时 浏览器特别卡 情景: 每秒实时渲染数据 效果:当前数据没有渲染完就开始渲染下一秒的数据了 如何将巨大的数据 在一秒内快速渲染到页面上呢? 解决方案 ...
- vue el-select数据量太大,导致浏览器崩溃解决办法
下拉数据量太大,浏览器单线程渲染时间较长,会导致浏览器崩溃.为了解决这一问题,可以采用懒加载形式,完美解决 <el-col :span="24"><el-form ...
最新文章
- TCP/IP协议面试常见题目
- python条件查询 或 in_64.Python中ORM查询条件:in和关联模型
- error: style attribute '@android:attr/windowEnterAnimation' not found
- web安全day2:NTFS安全权限
- Egret入门学习日记 --- 第十二篇(书中 5.1节 内容)
- 加快建设泛在电力物联网:万物互联 驶向数字经济蓝海
- 最适合游戏的显卡排行榜,显卡天梯图
- Java开发必知Linux命令
- 锁的优化机制了解嘛?请进!
- 算法笔记.胡凡 第五章 数学问题
- java word创建表格_Java 在Word中创建表格
- android照片视频备份,Android 保存图片或视频到相册并刷新相册
- 计算化学领域的黑科技
- Bear and Big Brother
- android 开源项目(转)
- 苹果iPhone 8或被阻击!
- POV-RAY基础教程 - 相机(6)
- 提高可靠性最笨的办法,也是最有效的方法
- Linux下Wget获取云盘资源
- 英语论文翻译成中文字数变化
热门文章
- PCB(layout)常用快捷键
- js WebSocket封装
- java highcharts_java后台生成HighCharts图片
- 香港本地账户和离案账户有什么区别?
- linux rm和rmdir区别,Linux命令rmdir和rm的区别
- C# Unicode编码解码
- 关于腾讯社区开放平台
- linux 下解压ear文件,EAR 文件扩展名: 它是什么以及如何打开它?
- 【测试基础】二、我好像真的不会设计“好的”测试用例
- php显示提交的个人信息,利用HTML实现一个个人信息表的网页(代码实例)