Node.jsを使用しています。 locationToAddressという名前の関数を作成しましたが、常にundefinedを返します。これは簡略化されたコードです:コンソールでJavaScript:関数の戻り値は定義されていません
var lat = '-34.491093';
var long = '-58.558597';
console.log(locationToAddress(lat, long));
function locationToAddress(lat, long) {
var preUrl = 'https://maps.googleapis.com/maps/api/geocode/json?latlng=';
var apiKey = '<API_KEY>';
var url = preUrl + lat + ',' + long + apiKey;
var addressString = '';
request(url, function (error, response, body) {
try {
var jsonLocationObject = JSON.parse(body);
addressString = JSON.stringify(jsonLocationObject.results[0].formatted_address);
addressString = addressString.replace(/["]/g, '');
console.log(addressString);
return addressString;
} catch (e) {
return 'Could not find address';
}
});
}
、このコードは次のように見られるべきである:
<FORMATTED_ADDRESS>
<FORMATTED_ADDRESS>
しかし、私は以下を参照してください。
undefined
<FORMATTED_ADDRESS>
私はエラーがリターンである知っています戻り値を記録せずに関数を呼び出すと、完全に機能するので、値の
あなたは、出力の順番で見ることができるように、機能は前に*を返す*応答が受信されました。 '要求 'は非同期です。 *値を返す*は常に同期します。 –