在 forEach 中更新流星集合时无限循环

Infinite loop when updating meteor collection within forEach

我正在创建一个网站,允许用户对他们喜欢的事物进行投票以影响他们在列表中的顺序(例如 reddit)。

当我使用 forEach 遍历我的集合,然后尝试根据排序结果的索引更新每个条目时,它最终陷入无限循环,我的应用程序崩溃了!

任何帮助都会很棒,代码如下。

MyList.find( {}, sort: votes: -1 ).forEach ( item, index ) ->

    MyList.update item._id, $set: rank: index

谢谢!

要阻止某些代码导致重新运行,请使用 Tracker.nonreactive (http://docs.meteor.com/#/full/tracker_nonreactive)

像这样:

Tracker.nonreactive ->
  MyList.find( {}, sort: votes: -1 ).forEach ( item, index ) ->
    MyList.update item._id, $set: rank: index