Ich versuche eine Funktion zu erstellen, die die Google Geocoding API für node.js verwendet, um eine Variable namens Geodaten zu erstellen und sie zurückzugeben. Aus irgendeinem Grund hat der Wert temp das gewünschte Ergebnis, aber wenn ich i außerhalb der Funktion verwende, ist der Wert von temp nicht definiert.Wie gibst du das Ergebnis von der Google Geocoding API auf Node.js zurück
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');
asynchroner Code ist asynchron –
kann ich ein Versprechen verwenden? Würde das helfen? Ich versuche zu lernen, wie man sie benutzt, aber ich will wissen, ob ich nur meine Zeit verschwenden werde. –
Versprechungen werden nicht helfen, sie sind auch asynchron, also wenn asynchroner Code nicht etwas ist, mit dem man weiß, wie man damit arbeitet, verspricht es nicht Hilfe. Die nächste Entwicklung von ihnen, async/await, kann dazu führen, dass asynchroner Code synchron aussieht, aber Sie müssen immer noch wissen, wie Sie mit Asynchronität arbeiten, um sie richtig zu verwenden ... Sie verschwenden keine Zeit, hören einfach auf zu suchen für eine magische Kugel, um asynchrone Aufgaben synchron arbeiten zu lassen - es ist unmöglich –