javascript - 为什么在 geolocation.getCurrentPosition 的回调中设置 session 变量不起作用

标签 javascript meteor

在我的 meteor 应用程序中,我首先尝试设置用户位置

Meteor.startup(() => {...}

像这样:

navigator.geolocation.getCurrentPosition((succ) => Session.set('currentLocation',succ));

但是,稍后在应用程序中尝试访问它时,它会返回一个空对象。 我验证了设置一个静态 session 变量,如“hi”,效果很好。我还验证了回调是通过 console.log(succ) 调用的,它也能正常工作。我最好的猜测是 session 变量发生了一些覆盖,但我不知道如何测试它。

有什么想法吗?

最佳答案

请查看本文Meteor Session

位置获取代码是

navigator.geolocation.getCurrentPosition(success, error);
 function success(position) { 
   Session.set("Latitude",position.coords.latitude);
   Session.set("Longitude",position.coords.longitude);

 }
 function error() {
    console.log("unable to retrive your location");
 }

并检索 session 数据

 let Latitude = Session.get("Latitude");
 let Longitude = Session.get("Longitude");

注意: session 只在客户端工作

关于javascript - 为什么在 geolocation.getCurrentPosition 的回调中设置 session 变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44059815/

相关文章:

javascript - 我如何根据图像大小自动调整我的div的高度

javascript - .then() 中的 Promise.reject 返回未定义

javascript - 如何使用访问 token 获取电子邮件地址和 Facebook 用户的一些基本信息

javascript - moment.js 和meteor,使用存储时刻的问题

javascript - 如何在 Meteor 中创建选择控件

javascript - 在 javascript 中使用类型 ="file"的输入打开特定类型的文件

javascript - 如何使用javascript单击任何按钮时设置标签焦点

javascript - 使用带有 Meteor 的 Cordova 文件插件,收到代码 : 5 ENCODING_ERROR in getDirectory() callback

javascript - 自动表单手动提交

javascript - Meteor eslint 配置用于包开发与全局命名空间导出