我一直在尝试this.userId
从 Meteor.methods 调用中访问该变量,但是当我尝试通过 Meteor.setTimeout 或 Meteor.setInterval 调用该方法时,它似乎不起作用。
这就是我所拥有的:
if (Meteor.is_server) {
Meteor.methods({
getAccessToken : function() {
try {
console.log(this.userId);
return Meteor.users.findOne({_id: this.userId}).services.facebook.accessToken;
} catch(e) {
return null;
}
}
});
var fetch_feed = function() {
console.log(Meteor.call("getAccessToken"));
[...] // A bunch of other code
};
Meteor.startup(function() {
Meteor.setInterval(fetch_feed, 60000); // fetch a facebook group feed every minute
Meteor.setTimeout(fetch_feed, 3000); // initially fetch the feed after 3 seconds
});
}
观察终端日志,this.userId
总是返回一个空值。但是,如果我尝试从客户端或通过控制台调用该方法,它会返回正确的 ID。
为什么这在 Meteor.setInterval 中不起作用?这是一个错误还是我做错了什么?