钩子函数onMounted定义了太多访问MySQL的操作 导致数据库异常

先放几种后端遇到的异常,多数和数据库有关

pymysql.err.InternalError: Packet sequence number wrong - got 102 expected 1
127.0.0.1 - - [09/May/2024 17:49:37] "GET /monitorLastTenList HTTP/1.1" 500 
AttributeError: 'NoneType' object has no attribute 'read'
127.0.0.1 - - [09/May/2024 17:49:37] "GET /alarmTotal HTTP/1.1" 500 -
使用pymysql报错err.ProgrammingError: execute() first

异常代码如下:

onMounted(() => {// getList();// getPeopleTotal().then(({ data }) =>{//   // 更新人数总量//   peopleTotal.value = data.total;// })getPeopleTotal().then(response => {// 打印请求返回的数据console.log('Total people count:', response.data);// 更新人数总量peopleTotal.value = response.data.total;}).catch(error => {console.error('Error fetching total people count:', error);});getJieKouTotal().then(response => {// 打印请求返回的数据console.log('Total JieKou count:', response.data);// 更新调用接口总量jieKouTotal.value = response.data.total;}).catch(error => {console.error('Error fetching total JieKou count:', error);});getTimeTotal().then(response => {// 打印请求返回的数据console.log('Total Time count:', response.data);// 更新时间总量timeTotal.value = response.data.total;}).catch(error => {console.error('Error fetching total Time count:', error);});getAlarmTotal().then(response => {// 打印请求返回的数据console.log('Total alarm count:', response.data);// 更新预警总量alarmTotal.value = 100;}).catch(error => {console.error('Error fetching total alarm count:', error);});getMonitorLastTenList().then(response => {// 打印请求返回的数据console.log('Total monitor count:', response.data);// 更新监控总量monitordataList.value = response.data.dataList;// 更新车流量预警统计图表数据carFlow.series[0].data = monitordataList.value;}).catch(error => {console.error('Error fetching total monitor count:', error);});getClassList().then(response => {// 打印请求返回的数据console.log('Total class count:', response.data);// 更新监控总量carCount.value = response.data.dataList[0];busCount.value = response.data.dataList[1];vanCount.value = response.data.dataList[2];// 更新饼状图数据pieChartData = [{ value: carCount.value, name: '小汽车' },{ value: vanCount.value, name: '厢式货车' },{ value: busCount.value, name: '公交车' },];category.series[0].data = pieChartData}).catch(error => {console.error('Error fetching total class count:', error);});
})

修改毕设vue代码,很多知识已经忘掉了,全程和gpt一起找bug,最后也没问出来什么,分析了一下应该是同时访问数据库次数太多了,让gpt帮忙修改了一下。

我:怎么让这几个函数一个一个的执行,否则会经常数据库异常
gpt: 你可以使用 JavaScript 中的 Promise 链来确保这些函数按顺序执行,并在前一个函数执行成功后再执行下一个函数。下面是一个示例代码,展示了如何使用 Promise 链来实现:

onMounted(() => {getPeopleTotal().then(response => {console.log('Total people count:', response.data);peopleTotal.value = response.data.total;return getJieKouTotal(); // 返回一个 Promise 对象,使得下一个函数能够等待当前函数执行完毕后再执行}).then(response => {console.log('Total JieKou count:', response.data);jieKouTotal.value = response.data.total;return getTimeTotal();}).then(response => {console.log('Total Time count:', response.data);timeTotal.value = response.data.total;return getAlarmTotal();}).then(response => {console.log('Total alarm count:', response.data);alarmTotal.value = 100;return getMonitorLastTenList();}).then(response => {console.log('Total monitor count:', response.data);monitordataList.value = response.data.dataList;carFlow.series[0].data = monitordataList.value;return getClassList();}).then(response => {console.log('Total class count:', response.data);carCount.value = response.data.dataList[0];busCount.value = response.data.dataList[1];vanCount.value = response.data.dataList[2];pieChartData = [{ value: carCount.value, name: '小汽车' },{ value: vanCount.value, name: '厢式货车' },{ value: busCount.value, name: '公交车' },];category.series[0].data = pieChartData;}).catch(error => {console.error('Error fetching data:', error);});
});

完美解决!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/9360.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据毕业设计Python+Django地铁客流量预测 时间序列 深度学习 机器学习 人工智能 Python爬虫 计算机毕业设计

​ 博主介绍:全网粉丝100W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业感兴趣的可以先收藏起来,点赞、关注不迷路 西安工程大学本科毕业设计&#xff…

【编程向导】Docker-常用命令

常用命令 管理命令 管理命令说明builder管理构建config管理配置container管理容器context管理上下文engine管理引擎image管理镜像network管理网络node管理 Swarm 节点plugin管理插件secret管理 Docker secretsservice管理服务stack管理 Docker stacksswarm管理 Swarm 集群sys…

C++中的std::bind深入剖析

目录 1.概要 2.原理 3.源码分析 3.1._Binder分析 3.2._CALL_BINDER的实现 4.总结 1.概要 std::bind是C11 中的一个函数模板,用于创建一个可调用对象(函数对象或者函数指针)的绑定副本,其中一部分参数被固定为指定值&#xf…

KPL2024春季季后赛有感 | 辉煌永远是过去式

首先说明我是一个普通的观众(不是专业的),不是谁的粉丝(本人是慕强批,只是比较喜欢武汉estarpro)。 在玩这个游戏之前,就听说过武汉estarPro很牛,只要他们上场,冠军就一定…

深入理解Spring中的@Autowired注解

在Spring框架中,Autowired注解是一个非常强大且常用的注解之一。它的主要作用是实现自动装配,即将一个Bean注入到另一个Bean中,从而简化了代码的编写。本文将深入探讨Autowired注解的原理、用法和一些注意事项。 1. Autowired注解的原理 Au…

RPA的安全性和可靠性

RPA(Robotic Process Automation)的安全性和可靠性是企业在引入这一技术时最为关注的两个方面。随着RPA技术的广泛应用,其在提高业务流程效率、降低成本方面的优势日益凸显,但与此同时,如何确保RPA系统的安全性和可靠性…

为什么 IP 地址通常以 192.168 开头?

在网络配置中,我们经常会遇到以 192.168 开头的 IP 地址,例如 192.168.0.1 或者 192.168.1.100。 这些地址通常用于局域网中,但为什么要选择以 192.168 开头呢? 本文将深入探讨这个问题,并解释其背后的原因和历史渊源…

Visual Studio编译QT工程

1、安装QT 2、安装VS 3、选择扩展和更新 4、搜索Qt Visual Studio Tools,安装或卸载 5、安装成功后工具栏显示Qt VS Tools 6、配置Qt VS Tools:打开Qt VS Tools的下拉菜单,选择Qt Versions 7、选择qt qmake.exe 的路径

Object.defineProperty 和 Proxy 使用例子

Object.defineProperty 是 JavaScript 中定义或修改对象属性的工具。它允许开发者更精确地控制属性的行为,如是否可枚举、是否可写、是否可配置等。 核心特性描述符 value: 属性的值,默认值为 undefined。writable: 布尔值,表示属性值是否可…

汽车行业芯片 车规级芯片 单车芯片( soc mcu)数量

链接:https://xueqiu.com/3000217281/272114755 10大车规级MCU芯片10大车规级MCU芯片 汽车芯片是什么? 汽车芯片即车规级芯片,标准要高于工业级和民用级芯片,仅次于军工级芯片。芯片大概有以下四种级别,分别是军工级…

ELK+kafka日志采集

ElasticSeach(存储日志信息) Logstash(搬运工) Kibana 连接ElasticSeach图形化界面查询日志 ELK采集日志的原理: 在每个服务器上安装LogstashLogstash需要配置固定读取某个日志文件Logstash将日志文件格式化为json的…

猿匹配,一款使用环信实现的一个开源聊天应用含服务器

前言 之前写了一篇Android开发集成聊天环信SDK3.x简单开始,然后最近得空开发了一款使用环信实现的实时聊天应用,包含简单的服务器端,并开源给大家,有兴趣的同学可以一起搞一下,详细介绍看下边吧 上代码 服务器&#…

六.音视频编辑-创建视频过渡-应用

引言 在上一篇博客中,我们已经介绍了创建视频过渡的实现方案,步骤非常繁琐,在生成AVMutableVideoCompositionInstruction和AVMutableVideoCompositionLayerInstruction的计算也十分复杂,但其实还有一个创建视频组合的捷径。不过我…

Github 学习使用随手记

1. GitHub 中使用仓库 在 GitHub 上,每个项目都由一个唯一的仓库来管理。仓库名是项目的标识,用于区分不同的项目。 仓库名由以下部分组成: 用户名或组织名:这是项目的创建者或所有者的用户名或组织名。项目名:这是…

Java基于Spring Boot框架的校园外卖服务系统设计与实现(附源码,说明文档)

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

typescript 命名空间、装饰器

1、命名空间 命名空间:在代码量较大的情况下,为了避免各种变量命名的冲突,可将相似功能的函数、类、接口等放置到命名空间内。同Java的包.Net的命名空间一样,typescript 的命名空间可以将代码包裹起来,只对外暴露需要在…

第二篇【AI与传奇开心果系列】Python的AI技术点库案例示例:详解AI工业应用算法原理

AI与传奇开心果系列博文 系列博文目录Python的AI技术点库案例示例系列 博文目录前言一、AI工业应用算法原理介绍二、机器学习在工业领域的应用算法示例代码三、深度学习算法在工业领域应用示例代码四、强化学习在工业领域应用示例代码五、自然语言处理在工业领域应用示例代码六…

9. Django Admin后台系统

9. Admin后台系统 Admin后台系统也称为网站后台管理系统, 主要对网站的信息进行管理, 如文字, 图片, 影音和其他日常使用的文件的发布, 更新, 删除等操作, 也包括功能信息的统计和管理, 如用户信息, 订单信息和访客信息等. 简单来说, 它是对网站数据库和文件进行快速操作和管…

Hive多字节分隔符处理

Hive多字节分隔符处理 1.Hive分隔符默认规则 2.问题与需求 3.解决方案 (1)替换分隔符 (2)RegeSerDe正则加载 (3)自定义InputFormat

SAP-ABAP-ALV报表

1、功能介绍 什么是ALV报表 2、开发步骤 事物码: SE38创建报表程序SE93生成TCODESE43SE91消息号报表类型:简单报表、复杂报表、报表树 报表组成:查询界面(选择屏幕)、展示界面、功能按钮 基本流程: 重点:数据放在内表里,临时表,放在内存里。 3、开发实战 按标题…