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的现有元素的东西时,它应该覆盖它?
我发现避免此问题的唯一方法是在新的运行循环中运行更新。如果延迟足够长(以毫秒为单位),则不会出现该问题。
似乎几乎同时接收来自 websocket 的更新和请求会在 Ember 数据中产生竞争条件。
| 归档时间: |
|
| 查看次数: |
1080 次 |
| 最近记录: |