文档中心
小程序云 
产品公告
云托管
云开发
产品简介
产品计费
操作指南
开发指南
云函数 sdk
服务端
nodejs sdk
常量
云函数
文件存储
开放能力
数据库
mysql
nosql
database
collection
document
transaction
aggregate
工具方法
php sdk(邀测中)
客户端
用户身份服务sdk
websocket
开发教程
cloudpilot
云效能
云安全
风险智能
智能营销
智能客服
智能监控
费用中心
访问控制
云迁移
组件市场
相关协议
小程序云 > 云开发 > 开发指南 > 云函数 sdk > 服务端 > nodejs sdk > 数据库 > nosql >  > runtransaction
收藏
我的文档
设置
新建事务并在事务中执行回调函数。
runtransaction 方法类型定义:
typescript
复制代码
function runtransaction<t = any>(scope: (transaction: transaction) => promise<t>): promise<t>
请求参数
scope: (transaction: transaction) => promise 回调函数,回调函数的入参为新创建的事务。
返回参数
promise.
该函数返回值为回调函数的返回值。
回调函数说明
用户实现事务处理回调函数,该函数接收一个参数 transaction,可对事务进行操作。 transaction 对象提供了 commitrollback 以及 collection 方法。
collection 方法用于在当前事务下获取集合对象并行相应操作。
rollback 方法用于在需要终止事务并进行回滚时调用。在回调函数抛出异常时,若事务未被提交/回滚,则 runtransaction 会自动调用该方法。
commit 方法用于结束事务并进行提交时调用。通常不需要手动执行,runtransaction 执行结束后会自动调用该方法。
在回调函数执行结束后,runtransaction 会认为当前事务已经执行完成,会自动提交事务,并返回事务处理回调函数的返回值。因此,若在回调函数中有其他异步操作(例如,settimeout、未被 await 的异步函数)可能导致异步执行异常。
在回调函数中,可手动调用 rollback 并传入 reason,在回调函数执行结束后,将抛出 reason。若回调函数抛出异常,且未手动调用 collectionrollback,此时 runtransaction 将自动调用 rollback ,再将异常抛出。
注意事项
1在事务处理回调函数中,需要通过 transaction 对象获取 collection 对象,直接通过 cloud.database().collection() 获取的 collection 对象无法读取事务中的数据。
2在事务回调函数中,嵌套再次调用 runtransaction 将创建新的事务,即嵌套的 runtransaction 和外层的 runtransaction 属于两个事务。
示例
购物时,创建订单并扣款的事务例子。
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图