Meteor的乐观UI如何处理服务器拒绝和依赖操作上的错误?
如果我这样做:
var item1Id = Items.insert({list: groceriesId, name: "Watercress"}); // op1
var item = Items.findOne({_id: item1Id});
Items.update(item, {$set: {name: "Peppers"}}); // op2
Items.insert({list: groceriesId, name: "Cheese"}); // op3
如果op1
在服务器端失败但在客户端成功,op2
和op3
会发生什么?
它们都会回滚吗?
答案 0 :(得分:1)
如果op1失败,那么op2将被回滚(因为它是对不存在的对象的更新)。 op3将成功,假设它也不会原子地失败。
如果您想要阻止op3发生,除非您确定op1已经成功,那么您可以在op1的回调中执行此操作。