gpt4 book ai didi

node.js - 返回结果时Sequelize操作挂起但不返回时工作

转载 作者:行者123 更新时间:2023-12-03 22:19:24 26 4
gpt4 key购买 nike

我已经使用 Node 大约 3 年了,但是现在发生在我身上的事情让我发疯。
我的项目在过去 6 个月中使用了 Sequelize,并且一切正常。
如果我尝试使用以下代码更新 myModelObject 实例,它会按预期工作。(为了以更清晰的方式显示行为,我更改了实际代码)

...
.then(parameters => {
myModelObject.update({parameters}, { where: { id: myObjectId }})
.then(() => {
console.log("Sequelize update resolved !")
})
})
.then( () => {
console.log("Promise resolved !")
})
这将使我的 myModelObject 在数据库中更新,控制台将显示:

Promise resolved !


1秒后...

Sequelize update resolved !


但是 ,当我在更新 myModelObject 之前添加 返回 时会发生奇怪的行为:
...
.then(parameters => {
return myModelObject.update({parameters}, { where: { id: myObjectId }})
.then(() => {
console.log("Sequelize update resolved !")
})
})
.then( () => {
console.log("Promise resolved !")
})
这使我的代码挂起......更新永远不会完成并且超时发生。我的意思是,如果我想退货,Sequelize 更新永远不会解决!
我所有的其他 Sequelize 代码都运行良好!
任何人都会非常感激:)
Node :12.16.0 || Sequelize :5.21.6 ||页:7.18.2

最佳答案

如果有人感兴趣,我发现了问题!
在调用此方法之前,在代码的另一部分中,正在使用 Sequelize 事务来更新同一对象,但该事务尚未提交。
显然这会导致我的更新挂起。
为了解决这个问题,我还将此事务传递给了我的 Update 调用。另一种修复它的方法是在调用我的更新之前结束事务。

关于node.js - 返回结果时Sequelize操作挂起但不返回时工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63122018/

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