推送到函数内的数组

mar*_*est 2 javascript arrays

我正在尝试为路由的起点/终点建立一个纬度和经度数组.

function parkRoute(){
    var start = $('#start').val();
    var end = $('#end').val();
    var points = [];
    function printPoints(points){
    console.log(points)
    }
    function getXY(add){
        geocoder.geocode( {'address': add + ", glendale, ca"}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                if (results[0].geometry.location) {
                    var lon = results[0].geometry.location.kb;
                    var lat = results[0].geometry.location.jb;
                    points.push(lat,lon);
                    console.log(points)
                }
            }
        })          
    }
    getXY(start);
    getXY(end);
    printPoints(points);
}
Run Code Online (Sandbox Code Playgroud)

它首先打印出一个空数组,即使我在创建数组的函数之后调用另一个函数来打印它们.

[]                                      parks1.js:192

[34.1480811, -118.24759369999998]               parks1.js:201

[34.1480811, -118.24759369999998, 34.1851925, -118.27651679999997] parks1.js:201
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

bfa*_*tto 9

推送之前打印阵列内容.地理编码操作是异步的,因此您必须从异步回调中进行打印.