如何通过 geolocation api 获得 pos 对象?

geolocation 有两个 call

navigator.geolocation.getCurrentPosition(success, error);
function success(position) {
  return position;
};

我的程序必须获得 pos 对象之后,才能执行下面的步骤,问题是,如何知道什么时候 pos 有返回呢?

我暂时的方案是

function success(position) {
  after_geo_api(position);
};

不过这个方案,显然不是太理想,这样,所有的其他步骤就只能在 after_geo_api 这个函数中去添加了。

阅读 2.2k
1 个回答

你的想法还是停留在操作是同步进行,而异步在JavaScript是无处不在的,你调用navigator.geolocation.getCurrentPosition时,浏览器会向用户发出一条询问,是否同意获取当前地理位置。
你无法得出用户什么时候会点击同意,所以这里我们传入一个回调函数,指明当用户允许获取地理位置并且获取成功时执行的操作。

JavaScript中的异步

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进