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

news/2024/11/14 13:09:36/

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

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.ppmy.cn/news/1460747.html

相关文章

鸿蒙应用开发系列 EX篇:HarmonyOS应用开发者基础认证

文章目录 系列文章背景认证考试题库参考注意:题库会不定时的进行具备调整甚至整体轮换,此为2024.5月版本注意:题库中题目的选项每次都会随机顺序,请参考内容判断题单选题多选题系列文章 鸿蒙应用开发系列 篇一:鸿蒙系统概述 鸿蒙应用开发系列 篇二:鸿蒙系统开发工具与环…

【静态分析】软件分析课程实验A2-常量传播和Worklist求解器

Tai-e官网: 概述 | Tai-e 参考: https://www.cnblogs.com/gonghr/p/17979609 -------------------------------------------------------- 1 作业导览 为 Java 实现常量传播算法。实现一个通用的 worklist 求解器,并用它来解决一些数据…

免费PDF批量加密工具

最近在找PDF批量加密的软件来着,发现很多都是需要收费的,当然如果平时工作需要用的比较多,支持一下还是ok的,但是多数人还是偶尔用一下所以没有必要买。 工作用的话,一般企业文件、个人隐私资料、重要合同...所有重要文…

RateLimiter 限流算法使用

Rate Limiter 是一种限流算法,用于控制系统中的资源使用率。它可以用于限制用户的访问速度,防止系统被过度访问,从而导致系统崩溃或性能下降。 通常用于网络服务、 API 接口和数据库等领域,以确保系统的稳定性和可靠性。 原理 R…

深度学习之视觉特征提取器——AlexNet

AlexNet 参考资料: (1)ImageNet十年历任霸主之AlexNet - 知乎 (zhihu.com) (2)AlexNet - Wikipedia 引入 AlexNet在2012年以第一名在Top-1分类精度霸榜ImageNet,并超过第二名近10个百分点,…

《二十一》QT QML编程基础

QML概述 QML(Qt Meta-Object Language)是一种声明性语言,它被用于描述Qt框架中用户界面的结构和行为。QML提供了一种简洁、灵活的方式来创建动态和交互式的界面。 QML基于JavaScript语法,通过使用QML类型和属性来定义界面的元素…

[思考记录]问题也是发现和改进自身的契机

这次xx产品新版本的试点项目上出现了升级后被迫回退版本的情况。其主要原因是新版本的登录模块引入了一个新的组件依赖,需要安装较新版本的 vc_redist 组件后才能正常使用。然而,这个问题在测试和发版阶段并未被发现,直到用户环境中才体现出来…

【全开源】Java同城预约月嫂服务上门服务本地服务源码APP+小程序+公众号+H 5

智能匹配与推荐:源码运用先进的算法和定位技术,根据用户的需求和地理位置,智能匹配并推荐附近的合适月嫂。这种匹配不仅基于地理位置,还考虑了月嫂的技能、经验、评价等因素,确保服务的质量和可靠性。 在线预约与支付…