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在服务器端失败但在客户端成功,op2op3会发生什么? 它们都会被回滚吗?

【问题讨论】:

“失败”在哪一边?客户端和服务器?只有服务器? 对不起,是的,我应该指定,在服务器端失败 【参考方案1】:

如果 op1 失败,那么 op2 将被回滚(因为它是对不存在的对象的更新)。 op3 会成功,前提是它不会自动失败。

如果您想阻止 op3 发生,除非您确定 op1 已成功,那么您可以在 op1 的回调中执行此操作。

【讨论】:

MeteorPad 在这里会非常好。你有时间去做吗?如果没有,我可以很快报废一个。 Salut @Kyll - 我开始了一个 here 但现在需要在第一个插入中创建一个错误。想试试吗?

以上是关于Meteor 如何处理依赖失败的乐观操作?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理锁(JPA)?

如何处理 Meteor 模板中的 switch case

事物(悲观,乐观)锁

如何处理高度和中等明显的依赖问题?

Reactive native 项目创建失败如何处理

如何处理返回 PartialView 的 ajax 调用控制器操作中的模型状态错误