meteor 放哪里 global tracker.autorun

meteor where to put global tracker.autorun

我想知道在哪里放置 Tracker.autorun 以确保其他所有内容都已加载。 我以为

Meteor.startup(function(){...});

用于这种情况,但是当我从 mdg:geolocation 引用 Geolocation 对象时,它告诉我它尚未定义:

未捕获类型错误:无法读取 属性 'lng' of null

我使用以下解决方法,但我希望有更优雅的解决方案:

 Meteor.startup(function () {
    trackerGeolocationInit = setInterval(enableLocationTracking, 100);
});

enableLocationTracking = function(){

    var location = Geolocation.latLng();
    if(location === null)
        return;
    else
        clearInterval(trackerGeolocationInit);

    Tracker.autorun(function () {
        var location = Geolocation.latLng();
        Meteor.users.update(Meteor.userId(), {
            $set: {
                "profile.location": {
                    type: 'Point',
                    coordinates: [location.lng, location.lat]
                }
            }
        });
    });
}

我正在编写一个有趣的应用程序,这个有效:

   Tracker.autorun(function () {
      if(Meteor.userId())
      {
        var latLng = Geolocation.latLng();
        var userId = Meteor.userId();
        if(latLng &&  userId)
        {
          //do something
        }
     }
    });

不需要使用间隔。我只是输入了一个文件调用 geolocation.js.