Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 流星全球跟踪器放在哪里。自动运行_Javascript_Meteor_Meteor Tracker - Fatal编程技术网

Javascript 流星全球跟踪器放在哪里。自动运行

Javascript 流星全球跟踪器放在哪里。自动运行,javascript,meteor,meteor-tracker,Javascript,Meteor,Meteor Tracker,我想知道在哪里放一个Tracker.autorun,以保证在加载之前加载所有其他内容。 我以为 Meteor.startup(function(){...}); 用于此类情况,但当我从mdg:Geolocation引用Geolocation对象时,它告诉我它尚未定义: 未捕获的TypeError:无法读取null的属性“lng” 我使用以下解决方法,但我希望有一个更优雅的解决方案: Meteor.startup(function () { trackerGeolocationInit

我想知道在哪里放一个Tracker.autorun,以保证在加载之前加载所有其他内容。 我以为

Meteor.startup(function(){...});
用于此类情况,但当我从mdg:Geolocation引用Geolocation对象时,它告诉我它尚未定义:

未捕获的TypeError:无法读取null的属性“lng”

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

 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的文件。

IIRC,它第一次读取时为
null
。仅当它不是
null
时才尝试继续,并且它将在更新后反应性地重新运行。顺便说一句,我不会在代码内部创建一个通过
setInterval()运行的
autorun