非托管事务(then-callback)
非托管事务强制你手动回滚或提交交易. 如果不这样做,事务将挂起,直到超时. 要启动非托管事务,请调用 sequelize.transaction()
而不用 callback(你仍然可以传递一个选项对象),并在返回的 promise 上调用 then
. 请注意,commit()
和 rollback()
返回一个 promise.
return sequelize.transaction().then(t => {
return User.create({
firstName: 'Bart',
lastName: 'Simpson'
}, {transaction: t}).then(user => {
return user.addSibling({
firstName: 'Lisa',
lastName: 'Simpson'
}, {transaction: t});
}).then(() => {
return t.commit();
}).catch(err => {
return t.rollback();
});
});