预期参数1-3,但得到0

时间:2019-05-24 16:40:34

标签: angular ionic4

错误参数获取离子4的当前位置

My image

我尝试搜索任何讨论,但没有找到答案。 在指定的离子文件中

this.geolocation.getCurrentPosition().then((resp) => {
    // resp.coords.latitude
    // resp.coords.longitude
}).catch((error) => {
    console.log('Error getting location', error);
});

我的代码是这样的

this.geolocation.getCurrentPosition().then(pos => {
   let latLng = new google.maps.latLng(pos.coords.latitude, pos.coords.longitude);
   this.map.setCenter(latLng);
   this.map.setZoom(15);
}).catch(err => {
   console.log(err);
});

当我徘徊时。我收到消息

(method) Geolocation.getCurrentPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback, options?: PositionOptions): void
Expected 1-3 arguments, but got 0.ts(2554)
lib.dom.d.ts(5389, 24): An argument for 'successCallback' was not provided.

我在YouTube https://www.youtube.com/watch?v=Ru57AkoWMJ4&t=199s上模仿了该教程

我在他的第43行出现错误

2 个答案:

答案 0 :(得分:0)

尝试这样更改代码:

this.geolocation.getCurrentPosition(pos => {
   let latLng = new google.maps.latLng(pos.coords.latitude, pos.coords.longitude);
   this.map.setCenter(latLng);
   this.map.setZoom(15);
 }, err => { console.log(error)});

该函数要求返回一个Promise,该请求将在请求成功时执行(与successCallback相同),而不是返回then。因此,无需调用then,而需要像我在代码中一样将函数作为第一个参数传递。另外,您可以提供catch作为第二个参数,而不必调用errorCallback

答案 1 :(得分:0)

我遇到了同样的问题。我是这样解决的:

this.geolocation.getCurrentPosition({maximumAge: 5000, timeout: 5000, 
enableHighAccuracy: false})
      .then((resp) => {
           //alert(resp.coords.latitude);
           //alert(resp.coords.longitude);
       }).catch((error) => {
           console.log('Error getting location', error);
       });