gpt4 book ai didi

javascript - Node js - 处理大量数据时出现 Promise Rejection 警告

转载 作者:行者123 更新时间:2023-12-01 04:01:33 25 4
gpt4 key购买 nike

我正在创建一项功能,当您传递条形码时,条形码的产品将添加到表中。

之后我们有一个按钮将数据保存在表中。对于每一行,都需要生成一个标记并插入到名为 bo、bo2 和 bo3 的表中。

使用 bo 标记,我们将向名为 bi、bi2 和 sl 的表中执行插入操作。

因此,我创建了一个结构来使用 Promise 执行此操作,但出现错误,但它仅在我有 20 行时发生:

<node:6796> UnhandledPromiseRejectionWarning: Unhandled promise rejection <rejection id: 13>: RequestError: Transaction <Process ID 61> was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

与数据库的连接是通过mssql库完成的。

就像我的函数更大,有必要向您展示所有代码以便您更好地理解问题,我将链接放在我的函数下面。 http://pastebin.com/MnM6AE6a

我已经更改了函数的结构,但问题仍然存在。

最佳答案

您的代码示例有 150 行代码,因此我不会调试所有这些代码(如果您希望人们帮助您发现并修复问题,您应该始终提供重现问题所需的最小代码示例并包含在问题中)实际错误),但 UnhandledPromiseRejectionWarning 意味着您在某个地方没有包含 Promise 的 catch 处理程序。

例如,如果您有:

promise.then(func);

而不是:

promise.then(func1, func2);

或者:

promise.then(func1).catch(func2);

那么你的代码没有正确处理 promise 拒绝,因此被破坏了。将来这个程序甚至可能不会在 Node 的下一个版本中启动 - 我在这个答案中更详细地解释了它:

此外,在查看了您的代码后,我强烈建议阅读有关 SQL 注入(inject)攻击的内容。我是认真的。甚至在解决未处理的 promise 拒绝问题之前,谷歌主题并修复您的代码。严重地。这些年来我不再提及这部漫画,但每个开发人员都应该知道并理解它:

enter image description here

请阅读:

关于javascript - Node js - 处理大量数据时出现 Promise Rejection 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42155046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com