2

我的用户在我的 Meteor.js 应用程序中观察到一个非常奇怪的、不可重现的行为。经过几个小时的调试,我找到了导致问题的特定代码行(在客户端):

Articles = new Meteor.Collection("articles")

Articles.insert({name: "..."}, (err, id) ->
  article = Models.Articles.findOne(id)
  console.log("Created - #{err} - #{id} - #{article}")
)

大多数时候输出看起来和预期的一样,但有时Models.Articles.findOne在客户端上找不到创建的文章,尽管它保存在数据库中:

Created - undefined - 1234 - undefined

您知道为什么会发生这种情况,以及如何解决这个问题吗?

4

1 回答 1

3

这可能是一个竞争条件。insert 的回调并不能保证您的 pub-sub 关系已完成发送您插入的文章。它确实给了你_id,但就是这样。

于 2013-10-11T14:38:21.027 回答