我很难编写一个回调函数来获取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>
警报
时我仍然myVar
为undefined
答案 0 :(得分:1)
你正在调用getTime并传递结果,只是在不调用它的情况下传递它。就像这样(删除一对括号)。
<button onclick="travellingTime('port louis','vacoas',getTime)">TSP</button>