只是想知道是否有人可以帮助我了解 Javascript 原则。如果我想将函数作为参数传递,我猜这是非常核心的。我对 Javascript 知之甚少,但我承认它的微妙之处可能还不够。
因此,调用 codeAddress,然后到达我的第一个警报 (HERE2),代码传递回我的 showOnMap 函数,然后到达我的第二个警报 (HERE3)。为什么我的 HERE3 警报显示在我的 HERE2 警报之前?我能做些什么来告诉 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;
}