回调函数无法按预期工作

时间:2018-03-14 07:11:22

标签: javascript function google-maps-api-3 asynccallback

我很难编写一个回调函数来获取google方向api发出的异步请求中的值,我需要的是编写一个回调函数,让我得到异步请求完成的时间。我想自己做,但我只是不明白为什么它不起作用,按照我在本网站上看到的一些例子应该可行。

这是我的回调函数

function getTime(myVar){alert(myVar);}

调用回调函数的函数

function travellingTime(Origin, Destination, callback) {
    var myVar;
    var directionsService = new google.maps.DirectionsService();
    var request = {
        origin: Origin,
        destination: Destination,
        travelMode: google.maps.DirectionsTravelMode.DRIVING
    };

    directionsService.route(request, function (response, status) {
        if (status == google.maps.DirectionsStatus.OK) {
            // Display the distance:
            //alert(response.routes[0].legs[0].distance.value + " meters");
            // Display the duration:
            //Time = (response.routes[0].legs[0].duration.value / 60);

            myVar = (response.routes[0].legs[0].duration.value / 60);
            callback(myVar);
        }
    });
}

触发按钮上的操作

<button onclick="travellingTime('portlouis','vacoas',getTime())">TSP</button>

警报

时我仍然myVarundefined

1 个答案:

答案 0 :(得分:1)

你正在调用getTime并传递结果,只是在不调用它的情况下传递它。就像这样(删除一对括号)。

<button onclick="travellingTime('port louis','vacoas',getTime)">TSP</button>