[英]Access variable outside function in native geocoder
我正在使用离子本机Geocoder从字符串提供的获取坐标。 国家是为国家/地区提供的字符串。 坐标从下面的代码给出所需的纬度和经度。 变量坐标数据给出函数内部包含纬度和经度的实际结果。 如果我尝试在函数外部打印坐标数据,它将给出未定义的信息。
this.nativeGeocoder.forwardGeocode(Country).then((coordinates: NativeGeocoderForwardResult[])=> {
let coordinatesData=JSON.stringify(coordinates, null, 2)
this.map.animateCamera( {
target: {
lat: coordinates[0].latitude,
lng: coordinates[0].longitude
}
, zoom: 4, duration: 500
}
);
let marker: Marker=this.map.addMarkerSync( {
position: {
lat: parseFloat(coordinates[0].latitude),
lng: parseFloat(coordinates[0].longitude)
}
, animation: GoogleMapsAnimation.DROP
}
);
}
) .catch((error: any)=> (error));
console.log(coordinatesData) // undefined
我想从函数外部获取与我在函数内部相同的结果。
尝试这样。 let
值在函数外部将不可用,因此请使用var
var coordinatesData= ""; //define the variable outside your call.
this.nativeGeocoder.forwardGeocode(Country).then((coordinates: NativeGeocoderForwardResult[])=> {
coordinatesData=JSON.stringify(coordinates, null, 2);
this.map.animateCamera( {
target: {
lat: coordinates[0].latitude,
lng: coordinates[0].longitude
}
, zoom: 4, duration: 500
}
);
let marker: Marker=this.map.addMarkerSync( {
position: {
lat: parseFloat(coordinates[0].latitude),
lng: parseFloat(coordinates[0].longitude)
}
, animation: GoogleMapsAnimation.DROP
}
);
}
) .catch((error: any)=> (error));
console.log(coordinatesData) // undefined
更新的答案:
var coordinatesData = this.nativeGeocoder.forwardGeocode(Country).then((coordinates: NativeGeocoderForwardResult[])=> {
this.map.animateCamera( {
target: {
lat: coordinates[0].latitude,
lng: coordinates[0].longitude
}
, zoom: 4, duration: 500
}
);
let marker: Marker=this.map.addMarkerSync( {
position: {
lat: parseFloat(coordinates[0].latitude),
lng: parseFloat(coordinates[0].longitude)
}
, animation: GoogleMapsAnimation.DROP
}
);
logData(JSON.stringify(coordinates, null, 2));
}
) .catch((error: any)=> (error));
function logData(coordinatesData){
console.log(coordinatesData) // undefined
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.