Ember Data有重复记录

Mar*_*ois 12 ember.js ember-data

在我的应用程序中,用户可以创建消息并发送它.当用户发送消息时,将创建消息,createRecord如果成功,服务器将回复201 Created.

此外,用户可以通过websocket从其他用户获取消息.当它收到一条消息时,我将它推入商店pushPayload.

var parsedData = JSON.parse(data);
this.store.pushPayload('message', parsedData);
Run Code Online (Sandbox Code Playgroud)

问题是,当用户发送消息并保存消息时,他们也会从websocket中获取消息,即使两个对象具有相同的ID,商店也会收到重复的消息.

我怎么能告诉商店,而不是当我推送或保存具有相同ID的现有元素的东西时,它应该覆盖它?

Mar*_*ois 3

我发现避免此问题的唯一方法是在新的运行循环中运行更新。如果延迟足够长(以毫秒为单位),则不会出现该问题。

似乎几乎同时接收来自 websocket 的更新和请求会在 Ember 数据中产生竞争条件。

  • 我可以确认这个错误在 Ember Data 1.13.11 中仍然存在。 (2认同)