在我的\ 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"变种?
答案 0 :(得分:2)
由于JavaScript函数运行完成,只要没有回调就没有使用全局的问题,它是一个原始值(不是一个对象,因为你可能遇到传递共享和异步函数的问题改变这个对象)。
在你的情况下,challett指出它是无关紧要的:你立即使用var
所以不需要首先声明它。