【发布时间】:2017-11-09 16:58:59
【问题描述】:
如何捕获特定于地理位置的错误以通知用户他们必须打开地理位置?
catch 记录了一个名为 PositionError 的错误,如 Mozilla 文档“https://developer.mozilla.org/en-US/docs/Web/API/PositionError”中所述。
*注意:我的代码没有捕捉到错误,它只是显示:
Uncaught (in promise) ReferenceError: PositionError is not defined
代码
getCurrentLocation() {
return new Promise((resolve, reject) => {
navigator.geolocation.getCurrentPosition(resolve, reject, {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
});
});
},
async inout() {
try {
let location = await this.getCurrentLocation();
let response = await axios.post(API.URL, {});
} catch (e) {
if(e instanceof PositionError) {
console.log('position error')
}
}
}
【问题讨论】:
-
我猜浏览器不知道 PositionError(但 getCUrrentPosition 返回“匿名”)。您可以改为检查
Object.prototype.toString.call(error) === '[object PositionError]'。 -
async/await是 ES2017 的一部分,而不是 ES7。
标签: javascript geolocation async-await ecmascript-2017