node.jsのgoogleジオコーディングAPIを使用してgeodataという変数を作成して返す関数を作成しようとしています。何らかの理由で値のtempは私が望む結果を持っていますが、私が関数の外でiを使うと、tempの値は定義されていません。Node.jsのGoogleジオコーディングAPIの結果を返す方法
var temp;
function getInfo(inAddress){
googleMapsClient.geocode({
address: inAddress,
region: 'MY'
}, function(err, response) {
if (!err) {
details = response.json.results;
var geodata = {
"status": response.json.status,
"formattedAddress": details[0].formatted_address,
"latitude": details[0].geometry.location.lat,
"longitude": details[0].geometry.location.lng,
"type": details[0].geometry.location_type,
};
for(i=0; details[0].address_components.length; i++){
if(details[0].address_components[i].types == "postal_code"){
geodata.postCode = details[0].address_components[i].long_name;
}
temp = geodata
console.log(temp);
}
}
});
}
getInfo('Nadayu28');
非同期コードは非同期です –
私は約束を使用できますか?それが助けになるだろうか?私はそれらを使用する方法を学ぼうとしていますが、私は自分の時間を無駄にしているかどうかを知りたいです –
約束は助けにならないでしょう。非同期のコードが何かではない場合、助けて。しかし、次のasync/awaitの進化により、非同期コードを同期させることができますが、まだ非同期で正しく動作させる方法を知る必要があります。非同期タスクを同期的に動作させるための魔法の弾丸は不可能です。 –