Transactions 我可以在前端显示sql事务运行状态吗
使用Transactions 我可以在前端显示sql事务运行状态吗,transactions,sequelize.js,Transactions,Sequelize.js,使用续集事务 是否可以在前端显示事务运行状态?例如,在运行setShooter之前,在User.create上还没有错误,在前端,我将显示创建用户,在创建用户之后,我将在前端显示设置shooter。注意: 您需要在客户机上实现一个加载器,该加载器将等待afterCommit调用,并在事务之后的逻辑执行期间显示所需的消息 事务对象允许跟踪是否提交以及何时提交 afterCommit钩子可以添加到托管和非托管事务对象: 托管事务: await sequelize.transaction(async
续集
事务
是否可以在前端显示事务运行状态?例如,在运行setShooter
之前,在User.create
上还没有错误,在前端,我将显示创建用户
,在创建用户之后,我将在前端显示设置shooter
。注意:
您需要在客户机上实现一个加载器,该加载器将等待afterCommit调用,并在事务之后的逻辑执行期间显示所需的消息
事务对象允许跟踪是否提交以及何时提交
afterCommit钩子可以添加到托管和非托管事务对象:
托管事务:
await sequelize.transaction(async (t) => {
t.afterCommit(() => {
// Your logic
});
});
const t = await sequelize.transaction();
t.afterCommit(() => {
// Your logic
});
await t.commit();
非托管事务:
await sequelize.transaction(async (t) => {
t.afterCommit(() => {
// Your logic
});
});
const t = await sequelize.transaction();
t.afterCommit(() => {
// Your logic
});
await t.commit();
传递给afterCommit的回调可以是异步的。在这种情况下:
sequelize.transaction
调用将在结算前等待它;
t.commit
调用将在结算之前等待它
如果事务回滚,则不会引发afterCommit钩子;
afterCommit钩子不会修改事务的返回值
您可以将afterCommit钩子与模型钩子结合使用,以了解实例何时被保存以及在事务外部可用
User.afterSave((instance, options) => {
if (options.transaction) {
// Save done within a transaction, wait until transaction is committed to
// notify listeners the instance has been saved
options.transaction.afterCommit(() => /* Notify */)
return;
}
// Save done outside a transaction, safe for callers to fetch the updated model
// Notify
});