我在编写回调函数以从 google direction 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);
}
});
}
在按钮上触发 Action
<button onclick="travellingTime('portlouis','vacoas',getTime())">TSP</button>
当警报时,我仍然得到 myVar
为 undefined
最佳答案
你正在调用getTime并传递结果,只是传递它而不调用它。像这样(删除一对括号)。
<button onclick="travellingTime('port louis','vacoas',getTime)">TSP</button>
关于javascript - 回调函数未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49271636/