相信大家偶尔会遇到某个请求数据量过大,需要分批多次请求的问题,这里举例按小时分批多次请求:

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, '请求全部完成的数据')})
}

最后,原创不易,如本文对您有所帮助,麻烦点赞收藏一下谢谢!

解决请求数据量过大,分批多次请求的问题相关推荐

  1. python not defined怎么解决_数据量太大?散点图装不下怎么办?用Python解决数据密度过大难题

    当我们需要观察比较2个变量间的关系时,散点图是我们首选图表. 可当数据量非常大,数据点又比较集中在某个区间中,图表没法看,密密麻麻的怎么看? 怎么办?这时候就得看密度图了 什么是密度图? 所谓的密度图 ...

  2. java导出Excel增加下拉框选项,解决小数据量和大数据量下拉框选项的问题

    文章目录 java导出Excel增加下拉框选项 一.小数据量情况 二.大数据量情况 java导出Excel增加下拉框选项(java结合easyExcel) 添加传参模型ConsumablesAddDT ...

  3. POST请求数据量过大,后端请求获取参数为null

    String xxxxx = request.getParameter("xxxx"); //此值为前端js获取的文件的Base64字符串,通过post请求提交至后台 当文件小于2 ...

  4. 报错 插入更新_window如何解决mysql数据量过大导致的报错

    window如何解决报错"The total number of locks exceeds the lock table size" 第一大步,查看mysql配置信息 在CMD中 ...

  5. mysql my.ini位置错误_解决mysql导入数据量很大导致失败及查找my.ini 位置(my.ini)在哪...

    数据库数据量很大的数据库导入到本地时,会等很久,然而等很久之后还是显示失败: 这是就要看看自己本地的没mysql是否设置了超时等待,如果报相关time_out这些,可以把mysql.ini尾部添加ma ...

  6. 解决Mysql数据量大的时候 分页优化(使用limit)的问题

    解决Mysql数据量大的时候 分页优化(使用limit)的问题 参考文章: (1)解决Mysql数据量大的时候 分页优化(使用limit)的问题 (2)https://www.cnblogs.com/ ...

  7. vue+cesium cesium数据量太大导致浏览器卡顿解决办法

    vue+cesium cesium数据量太大 导致浏览器卡顿 解决办法 解决方案 : 不要把任何的cesium对象 放在data中监听,因为在data中的变量 , vue会劫持数据 , 导致迟缓. 解 ...

  8. vue+cesium cesium数据量太大 导致浏览器卡顿 解决办法

    如题 博主在开发过程中遇到了问题就是 当数据量过大时 浏览器特别卡 情景: 每秒实时渲染数据 效果:当前数据没有渲染完就开始渲染下一秒的数据了 如何将巨大的数据 在一秒内快速渲染到页面上呢? 解决方案 ...

  9. vue el-select数据量太大,导致浏览器崩溃解决办法

    下拉数据量太大,浏览器单线程渲染时间较长,会导致浏览器崩溃.为了解决这一问题,可以采用懒加载形式,完美解决 <el-col :span="24"><el-form ...

最新文章

  1. TCP/IP协议面试常见题目
  2. python条件查询 或 in_64.Python中ORM查询条件:in和关联模型
  3. error: style attribute '@android:attr/windowEnterAnimation' not found
  4. web安全day2:NTFS安全权限
  5. Egret入门学习日记 --- 第十二篇(书中 5.1节 内容)
  6. 加快建设泛在电力物联网:万物互联 驶向数字经济蓝海
  7. 最适合游戏的显卡排行榜,显卡天梯图
  8. Java开发必知Linux命令
  9. 锁的优化机制了解嘛?请进!
  10. 算法笔记.胡凡 第五章 数学问题
  11. java word创建表格_Java 在Word中创建表格
  12. android照片视频备份,Android 保存图片或视频到相册并刷新相册
  13. 计算化学领域的黑科技
  14. Bear and Big Brother
  15. android 开源项目(转)
  16. 苹果iPhone 8或被阻击!
  17. POV-RAY基础教程 - 相机(6)
  18. 提高可靠性最笨的办法,也是最有效的方法
  19. Linux下Wget获取云盘资源
  20. 英语论文翻译成中文字数变化

热门文章

  1. PCB(layout)常用快捷键
  2. js WebSocket封装
  3. java highcharts_java后台生成HighCharts图片
  4. 香港本地账户和离案账户有什么区别?
  5. linux rm和rmdir区别,Linux命令rmdir和rm的区别
  6. C# Unicode编码解码
  7. 关于腾讯社区开放平台
  8. linux 下解压ear文件,EAR 文件扩展名: 它是什么以及如何打开它?
  9. 【测试基础】二、我好像真的不会设计“好的”测试用例
  10. php显示提交的个人信息,利用HTML实现一个个人信息表的网页(代码实例)