Meteor.methods 呼び出し内から変数にアクセスしようとしましたがthis.userId
、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
常に null を返します。しかし、クライアント側から、またはコンソールからメソッドを呼び出そうとすると、正しい ID が返されます。
これが Meteor.setInterval 内から機能しないのはなぜですか? それはバグですか、それとも何か間違ったことをしていますか?