【发布时间】:2018-03-14 15:17:15
【问题描述】:
我在编写回调函数以从 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
【问题讨论】:
-
getTime是函数本身(更准确地说,是指向函数的引用)。如果您添加(),您正在执行该功能。
标签: javascript function google-maps-api-3 asynccallback