我有以下代碼:的JavaScript:異步情況下
var IPMapper = {
markerArray = [];
addIPArray: function(ipArray) {
.....
for (var i = 0; i < ipArray.length; i++) {
IPMapper.addIPMarker(ipArray[i], i, ipArray.length, IPMapper.f_callback);
}
return IPMapper.markerArray;
},
addIPMarker: function(ip, i, ip_array_length) {
var url = encodeURI(IPMapper.baseUrl + ip + "?callback=?");
$.getJSON(url, function(data) {
var latitude = data.latitude;
var longitude = data.longitude;
var latlng = new google.maps.LatLng(latitude, longitude);
var marker = new google.maps.Marker({
draggable: false,
position: latlng
});
IPMapper.markerArray.push(marker);
}
}
}
我曾嘗試:
IPMapper.addIPArray(array_with_ips);
,但我得到一個空數組。我如何返回一個填充數組?我需要致電IPMapper.addIPArray
返回結果。我試着回撥IPMapper.addIPMarker
,但這不是我所需要的(我只需要調用一個函數並獲得結果(在RoR中進行下一次緩存的情況))。請對此有任何意見。
請參閱http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call和http://stackoverflow.com/q/8726046/218196 –