亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在本機地理編碼器中訪問函數外部的變量

在本機地理編碼器中訪問函數外部的變量

一只斗牛犬 2021-06-15 13:51:28
我正在使用 ionic native geocoder 從字符串中獲取坐標。Country 是為國家/地區提供的字符串。坐標從下面的代碼給出所需的緯度和經度。變量坐標數據給出包含函數內部緯度和經度的實際結果。如果我嘗試在函數外打印坐標數據,它會給出未定義。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當我進入函數內部時,我希望從函數外部的變量坐標數據獲得相同的結果。
查看完整描述

1 回答

?
SMILET

TA貢獻1796條經驗 獲得超4個贊

像這樣嘗試。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

}


查看完整回答
反對 回復 2021-06-24
  • 1 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號