承诺中的地理定位

3

我想把navigator.geolocation.getCurrentPosition()方法放在一个Promise中,然后在async函数中等待它。这样做正确吗?

const getGeoLocation = () => new Promise((resolve, reject) => {
  function positionSuccess(position) {
    resolve(position);
  }
  function error() {
    reject();
  }
  navigator.geolocation.getCurrentPosition(positionSuccess, error, { enableHighAccuracy: true });
});

export default getGeoLocation;


1
看起来不错,但是既然你对结果没有进行额外处理,为什么不直接将 resolvereject 直接传递到 getCurrentPosition 的调用中呢?例如:getCurrentPosition(resolve, reject, { enableHighAccuracy: true }) - undefined
1个回答

8
var getPosition = function (options) {
  return new Promise(function (resolve, reject) {
    navigator.geolocation.getCurrentPosition(resolve, reject, options);
  });
}

getPosition()
  .then((position) => {
    console.log(position);
  })
  .catch((err) => {
    console.error(err.message);
  });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接