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
});