回调函数返回未定义值
Callback function returning undefined value
我正在尝试使用 Google 地图 API 来 return 从一个点到另一个点的旅程时间和长度。这是我的代码。
var routeInfoObject;
function findRoutes(given_origin, given_destination){
var directionsService = new google.maps.DirectionsService();
var directionsRequest = {
origin: given_origin,
destination: given_destination,
travelMode: google.maps.DirectionsTravelMode.WALKING,
unitSystem: google.maps.UnitSystem.METRIC,
provideRouteAlternatives: true
};
var times = new Array();
var lengths = new Array();
var positions = new Array();
directionsService.route(directionsRequest, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
for (i = 0; i < response.routes.length && i < 4 ; i++)
{
times[i] = response.routes[i].legs[0].duration.text;
lengths[i] = response.routes[i].legs[0].distance.text;
}
routeInfoObject = times;
} else {
console.log("There was an error with the request")
}
});
console.log(routeInfoObject);
}
底部的日志总是return未定义,即使 routeInfoObject 是一个全局变量并且应该设置为时间值。如果我 运行 findRoutes("longsight","rusholme") returns [18,18,18].
在回调函数中记录时间值
回调函数 (function(response, status)
) 直到 在 您的 console.log
语句后才执行,因此 尚未分配.
我正在尝试使用 Google 地图 API 来 return 从一个点到另一个点的旅程时间和长度。这是我的代码。
var routeInfoObject;
function findRoutes(given_origin, given_destination){
var directionsService = new google.maps.DirectionsService();
var directionsRequest = {
origin: given_origin,
destination: given_destination,
travelMode: google.maps.DirectionsTravelMode.WALKING,
unitSystem: google.maps.UnitSystem.METRIC,
provideRouteAlternatives: true
};
var times = new Array();
var lengths = new Array();
var positions = new Array();
directionsService.route(directionsRequest, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
for (i = 0; i < response.routes.length && i < 4 ; i++)
{
times[i] = response.routes[i].legs[0].duration.text;
lengths[i] = response.routes[i].legs[0].distance.text;
}
routeInfoObject = times;
} else {
console.log("There was an error with the request")
}
});
console.log(routeInfoObject);
}
底部的日志总是return未定义,即使 routeInfoObject 是一个全局变量并且应该设置为时间值。如果我 运行 findRoutes("longsight","rusholme") returns [18,18,18].
在回调函数中记录时间值回调函数 (function(response, status)
) 直到 在 您的 console.log
语句后才执行,因此 尚未分配.