JavaScript变量为空

JavaScript变量为空,javascript,google-maps-api-3,google-directions-api,Javascript,Google Maps Api 3,Google Directions Api,我想使用“start”作为起点的全局变量。所以我将它声明为一个全局变量,然后在CodeAddress函数中设置一个值。该值用于设置标记,该标记按预期工作。当我想在calcRoute函数中使用start变量时,它是未定义的 我正在使用以下代码: var映射; 乌鲁鲁变种; var启动 设置start后,您需要调用calcRoute。由于start是在geocodeAPI的回调中设置的,因此您必须在该回调中调用calcRoute,post settingstart。差不多 geocoder.ge

我想使用“start”作为起点的全局变量。所以我将它声明为一个全局变量,然后在CodeAddress函数中设置一个值。该值用于设置标记,该标记按预期工作。当我想在calcRoute函数中使用start变量时,它是未定义的

我正在使用以下代码:


var映射;
乌鲁鲁变种;

var启动 设置
start
后,您需要调用
calcRoute
。由于
start
是在
geocode
API的回调中设置的,因此您必须在该回调中调用
calcRoute
,post setting
start
。差不多

geocoder.geocode({address: address}, function(results, status) {
  if (status == 'OK') {  
    start = results[0].geometry.location;
    // do the rest
    calcRoute();
  }
});

您正在初始化变量之前使用它。长话短说,设置
start
的函数不是立即运行的,因为它是异步的。您需要链接回调或使用类似的机制。当设置了/where
start
时,在Geocoder回调函数中调用
calcRoute