gpt4 book ai didi

javascript - 函数中的返回语句

转载 作者:行者123 更新时间:2023-12-03 22:43:17 25 4
gpt4 key购买 nike

在下面的示例中,我从 Sequelize 文档中获取的关于事务的文档中,我不明白为什么您必须为查询添加 return 语句以及 sequelize 事务方法。

 function doTransaction () {
return sequelize.transaction(function (t) {

// chain all your queries here. make sure you return them.
return User.create({
firstName: 'Abraham',
lastName: 'Lincoln'
}, {transaction: t}).then(function (user) {
return user.setShooter({
firstName: 'John',
lastName: 'Boothe'
}, {transaction: t});
});

}).then(function (result) {
// Transaction has been committed
// result is whatever the result of the promise chain returned to the transaction callback
}).catch(function (err) {
// Transaction has been rolled back
// err is whatever rejected the promise chain returned to the transaction callback
});
}

最佳答案

如果您的 promise then 链中有一些不返回任何内容的内容,则假定该方法没有执行链中的任何内容。如果你想扩展链,你有责任返回一个 promise。这是 promise 驱动设计的基本原则之一。

这里事务代码需要知道什么时候可以提交事务。如果您不在该块内返回 promise ,它将在这些插入操作接近完成之前很久就继续并关闭它。这就是异步代码的本质。您需要在级别之间进行协调。

如果您在这种情况下忘记返回值,您的代码可能会工作,但它的行为也会不可预测,引入细微的错误,如果不加以纠正,可能会导致困惑。开发一个正确的 promise 现在是什么样子是一个好主意,return 语句应该出现在链中的任何东西上,并构建你的代码,以便错误是显而易见的。

关于javascript - 函数中的返回语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40554975/

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