<分区>
我正在使用 ajax 和谷歌地图。我想通过异步调用在我的 map 上创建(并在之后刷新)标记。这就是我的代码:
function createMarker(){
for (var i in selectedTrucks) {
var urlReq = '/ajaxRequest/getSingleTruckPosition/' + selectedTrucks[i];
console.log("Launching createMarker() request on: " + urlReq);
$.ajax({
url: urlReq,
})
.done(function(data) {
var equipValue = jQuery.parseJSON(data);
if(equipValue == null)
console.log(selectedTrucks[i] + " has no position.");
else{
//console.log("Creating marker n° " + i + " on position: lat: " + equipValue.latitudine + " lng: " + equipValue.longitudine);
console.log("Creating marker n° " + i + " on position: lat: " + equipValue.LATITUDINE + " lng: " + equipValue.LONGITUDINE);
markers[i] = new google.maps.Marker({
position: new google.maps.LatLng(equipValue.LATITUDINE, equipValue.LONGITUDINE),
map: map,
//icon: iconBase + 'truck.png'
});
var infowindow = new google.maps.InfoWindow(); // popup marker
makeInfoWindowEvent(map, infowindow, "Marker: " + i, markers[i]);
markers.push(markers[i]);
}
})
.fail(function() {
console.log("Ajax failed to fetch data on createmarker")
})
}
}
基本上一切正常,但是当我启动 makeInfoWindowEvent() 时,标记索引始终是我 for 循环的最后一个。我认为是 ajax 回调的问题。 如何在 ajax 调用期间停止 for 循环?
有像c#这样的await吗?我是 JS 新手