Meteor 如何处理依赖失败的乐观操作?
Posted
技术标签:
【中文标题】Meteor 如何处理依赖失败的乐观操作?【英文标题】:How does Meteor handle dependent failed optimistics operations? 【发布时间】:2016-02-23 11:37:17 【问题描述】: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
会发生什么?
它们都会被回滚吗?
【问题讨论】:
“失败”在哪一边?客户端和服务器?只有服务器? 对不起,是的,我应该指定,在服务器端失败 【参考方案1】:如果 op1 失败,那么 op2 将被回滚(因为它是对不存在的对象的更新)。 op3 会成功,前提是它不会自动失败。
如果您想阻止 op3 发生,除非您确定 op1 已成功,那么您可以在 op1 的回调中执行此操作。
【讨论】:
MeteorPad 在这里会非常好。你有时间去做吗?如果没有,我可以很快报废一个。 Salut @Kyll - 我开始了一个 here 但现在需要在第一个插入中创建一个错误。想试试吗?以上是关于Meteor 如何处理依赖失败的乐观操作?的主要内容,如果未能解决你的问题,请参考以下文章