私はjavascriptでジオコーダーに取り組んでいます。アドレスを取得して座標を正しく与える codeAddress という名前の関数があります。ただし、この関数を別の関数で呼び出すと、呼び出し元関数が codeAddress 関数の前に終了するため、正しい結果が得られません。これが私のコードです:
var geocoder = new google.maps.Geocoder();
var lokasyon ={ id:0,lat:0,lng:0 };
var lokasyonlar=[];
function codeAddress(adres, id) {
geocoder.geocode({ 'address': adres }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
lokasyon.id = id;
lokasyon.lat = results[0].geometry.location.lat();
lokasyon.lng = results[0].geometry.location.lng();
lokasyonlar.push(lokasyon);
alert("codeAddress");
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
function trial2() {
codeAddress("1.ADA SOKAK, ADALET, OSMANGAZİ, Bursa", 12);
alert("trial2");
}
window.onload = trial2;
このコードを実行すると、最初に「trial2」が表示され、次に「codeAddress」が表示されます。これの理由は何ですか?