saga中lock money字段时,目的是怕别人更改,这个可以不通过“语言本身或框架本身”实现,而是通过普通的方法达到。伪代码如下:
// saga 转账方法 function transfer(fromId, toId, money) {
// 略一些东东
var fromUser = this.mix(u1, fromRole); // dci 方式得到 from角色 var toUser = this.mix(u2, toRole); // to 角色
fromUser.deduct(money); toUser.recharge(money);
}
|
这里的 deduct/recharge 角色方法调用时,会先 lock money字段,操作后放开,这里的放开是操作成功和失败都会unlock。
请各位予以批评指正,嘎嘎。