const db = wx.cloud.database();
// 开始事务
db.startTransaction({
isolationLevel: 'read-committed', // 设置事务的隔离级别,默认为 read-committed
}).then(async transaction => {
try {
// 在事务中执行更新操作
const updateResult = await transaction.collection('collectionName').doc('docId').update({
data: {
key: value
}
});
// 在事务中执行插入操作
const addResult = await transaction.collection('collectionName').add({
data: {
key: value
}
});
// 提交事务
await transaction.commit();
console.log('Transaction success', updateResult, addResult);
} catch (err) {
// 回滚事务
await transaction.rollback();
console.error('Transaction failed', err);
}
}).catch(err => {
console.error('Start transaction failed', err);
});
在上述示例中,我们使用 db.startTransaction() 开始了一个事务,然后在事务中执行了一个更新操作和一个插入操作。如果事务中的所有操作都执行成功,我们使用 transaction.commit() 提交事务;如果任何一个操作失败,我们使用 transaction.rollback() 回滚事务。
需要注意的是,事务中的所有操作应该使用同一个事务对象,以保证它们在同一个事务中执行。详细的文档和 API 可以参考[微信小程序云开发官方文档 - 数据库 - 事务](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/transaction.html)。
转载请注明出处:http://www.zyzy.cn/article/detail/1251/微信小程序