我应该使用全球" currentUserId"我的Meteor发布代码中的var?

时间:2015-10-02 13:30:20

标签: meteor global-variables publish-subscribe

在我的\ server \ publications.js文件中,我有这样的代码:

Meteor.publish("jobLocations", function () {
  var currentUserId = this.userId;
  return JobLocations.find({createdBy: currentUserId});
});

Meteor.publish("workers", function () {
  var currentUserId = this.userId;
  return Workers.find({createdBy: currentUserId});
});

. . .

IOW,我正在使用名为" currentUserId"的本地var。在每种发布方法中。

最好将其更改为:

var currentUserId = null;
Meteor.publish("jobLocations", function () {
  currentUserId = this.userId;
  return JobLocations.find({createdBy: currentUserId});
});

Meteor.publish("workers", function () {
  currentUserId = this.userId;
  return Workers.find({createdBy: currentUserId});
});

...或者是否有一些理由为什么每个发布方法都需要自己的本地" currentUserId"变种?

1 个答案:

答案 0 :(得分:2)

由于JavaScript函数运行完成,只要没有回调就没有使用全局的问题,它是一个原始值(不是一个对象,因为你可能遇到传递共享和异步函数的问题改变这个对象)。

在你的情况下,challett指出它是无关紧要的:你立即使用var所以不需要首先声明它。