cursor.forEach iterates the cursor and is reactive. Therefore if used in reactive contexts like helpers, it will set up the reactive computations and your dependencies will rerun when the result of cursor.find changes.

@serkandurusoy You’re correct about the reactive part. But as Meteor.users.find() returns a reactive cursor, the underscore part will also be run again after a change in the cursor.

Or did you mean that cursor.forEach is that smart that it will only rerun on the changed items within the collection, while underscore will rerun the loop for all items, when only a single one changed? That would be awesome.

@agusputra I’m not sure if you’re loosing the reactivenes by applying fetch instantly. But by applying it, you’d certainly make the method run slower, as it’s waiting for the cursor’s response.