1

userIdどうすれば関数内Meteor.startupのアイデアを得ることができますか? 10秒ごとにpingを実行するループを実行する必要がありますが、取得できるのはError: Meteor.userId can only be invoked in method calls. Use this.userId in publish functions.

私のコード:

Meteor.startup(function() {
    console.log(Meteor.userId());
});
4

2 に答える 2

1

サブスクリプションからのデータ (ログインしているユーザーなど) が到着するまでに少し時間がかかり、その時間までに起動が完了するためMeteor.userId()、関数でを取得する可能性は低くなります。startup

Tracker.autorun()代わりに使用してください:

Tracker.autorun(function() {
    if(Meteor.userId()) {
        ///
    }
});

これは、ユーザーがログインするたびに実行されることに注意してください。一度だけ実行されるようにするにはSession、実行回数を保存できる を使用し、複数回実行する場合は停止します。

于 2013-05-27T20:13:50.033 に答える
0

答えはエラーメッセージに明確に記載されています。ちなみに、印刷する前にログインしているかどうかを確認する必要があります。

Meteor.startup(function() {
    if (this.userId)
        console.log(this.userId);
});
于 2013-05-27T19:57:30.700 に答える