我认为下面的代码中存在范围问题,但我试图将地理编码回调函数返回的值保存到折线数组中,但是当我运行 console.log 时,该数组为空。
var addPolyline = function(map, line) {
var polyline = [];
$.each(line, function(index, address){
geocode(address, function(latlng){
polyline.push(latlng);
console.log(polyline);
});
});
console.log(polyline);
}
有人可以告诉我如何将回调函数中的元素添加到数组中吗?谢谢
编辑:点被添加到折线数组中,但 console.log(polyline) 在 $.each 完成之前执行。我需要想办法等到它完成。
Edit2:一位响应者说要使用回调。我使用以下代码进行了尝试,但在 $.each 完成之前仍在执行回调(折线)。
var addPolyline = function(map, line) {
formatPolyline(line, function(polyline){
console.log(polyline);
});
}
var formatPolyline = function(line, callback) {
var polyline = [];
$.each(line, function(index, address){
geocode(address, function(latlng){
polyline.push(latlng);
console.log(polyline);
});
});
callback(polyline);
}