是否需要回调来确保插入时类似事务的行为?

时间:2013-05-17 16:47:09

标签: meteor

假设我有一个看起来像这样的方法:

commentsInsert: (comment) ->
  Comments.insert comment, (err) ->
    throw err if err
    updateCommentCounts()

此处的目标是避免在插入失败时调用updateCommentCounts。如果此代码仅在服务器上运行,我可以跳过回调和throw吗?例如:

commentsInsert: (comment) ->
  Comments.insert comment
  updateCommentCounts()

流星文档说:

  

在服务器上,如果您不提供回调,则插入块直到数据库确认写入,或者如果出现错误则抛出异常。

我假设这意味着它将退出该函数并将错误代码返回给调用者。是吗?

1 个答案:

答案 0 :(得分:0)

为了测试这个,我在comments集合中添加了一个唯一的索引,并做了两个相同的插入。第二个插入引发了错误(如预期的那样),向客户端发送了500,并从该方法中获得了保释。所以似乎我的问题的答案是:是的,我可以跳过回调。

相关问题