Javascript 本地地理编码器中函数外部的访问变量
我正在使用ionic native geocoder从字符串中获取坐标。国家是为国家提供的字符串。 坐标给出了代码下方所需的纬度和经度。 变量CoordinationData给出函数中包含纬度和经度的实际结果。 如果我尝试打印Coordinates Data外部函数,它会给出未定义的Javascript 本地地理编码器中函数外部的访问变量,javascript,angular,typescript,ionic-framework,Javascript,Angular,Typescript,Ionic Framework,我正在使用ionic native geocoder从字符串中获取坐标。国家是为国家提供的字符串。 坐标给出了代码下方所需的纬度和经度。 变量CoordinationData给出函数中包含纬度和经度的实际结果。 如果我尝试打印Coordinates Data外部函数,它会给出未定义的 this.nativeGeocoder.forwardGeocode(Country).then((coordinates: NativeGeocoderForwardResult[])=> { let co
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
}
像这样试试<代码>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
}
您好,我尝试了您的解决方案,但在控制台中它只显示空白。现在我得到输出:[object Promise]您现在可以尝试吗您好,我尝试了您的解决方案,但在控制台中它只显示空白。现在我得到输出:[object Promise]您现在可以尝试吗