【发布时间】:2021-01-25 20:00:37
【问题描述】:
我已经使用 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 在数据库中更新,控制台将显示:
承诺已解决!
1 秒后...
Sequelize 更新已解决!
但是,当我在更新 myModelObject 之前添加 return 时会发生奇怪的行为:
...
.then(parameters => {
return myModelObject.update({parameters}, { where: { id: myObjectId }})
.then(() => {
console.log("Sequelize update resolved !")
})
})
.then( () => {
console.log("Promise resolved !")
})
这使我的代码挂起.. 更新永远不会完成并且会发生超时。我的意思是,如果我想退货,Sequelize 更新永远不会解决! 我所有其他 Sequelize 代码都运行良好!
任何 hep 都会非常感激 :)
节点:12.16.0 ||续集:5.21.6 || pg: 7.18.2
【问题讨论】:
-
您要返回什么?一个promise对象或只是一个字符串“Sequelize update resolved!”
-
我只是想返回更新的承诺,这样我就可以在它解决后采取行动,但是如果我在“更新”之前添加返回,它会挂起并且永远不会解决
-
惊讶地发现您的代码不适用于
return!! -
正是..快把我逼疯了
-
鉴于您显示的代码,您在此处描述的内容是不可能的。您在示例中省略了其他内容。
标签: node.js promise sequelize.js