誰かがJavascriptの原則で私を助けることができるかどうか疑問に思うだけです。私はパラメータとして関数を渡したい場合、これはかなり重大だと思います。私はJavascriptについて少しは知っているが、私はその微妙さについては不十分であると認めている。Javascriptコードの実行順序
したがって、codeAddressが呼び出された後、最初の警告(HERE2)に達し、コードがshowOnMap関数に戻り、2番目の警告(HERE3)に達します。私のHERE2アラートの前に私のHERE3アラートが表示されるのはなぜですか? Javascriptに待つように私ができることはありますか?事前に
おかげ
function showOnMap() {
var inputStart = document.getElementById('CurrentHitch_StartDescription').value;
var inputEnd = document.getElementById('CurrentHitch_EndDescription').value;
codeAddress(inputStart, true); //HERE1*************
codeAddress(inputEnd, false);
var bounds2 = new google.maps.LatLngBounds(this.markerStart.getPosition());
bounds2.extend(this.markerEnd.getPosition());
map.fitBounds(bounds2);
alert('showOnMap'); //HERE3*************
}
function codeAddress(address, isStart) {
geocoder.geocode({ 'address': address }, function (results, status) {
alert('codeAddress'); //HERE2*************
if (status == google.maps.GeocoderStatus.OK) {
if (isStart) {
markerStart.setPosition(results[0].geometry.location);
}
else {
markerEnd.setPosition(results[0].geometry.location);
}
} else {
alert("Sorry, couldn't find your destination: " + status);
}
});
return;
}
これは本当に面倒です。私はこの同じ問題で苦労していましたが、解決策を見つけることはできませんでした。 – Mansfield
ありがとう、ええ、コールバック機能にコードを渡しています。 – orangesherbert