我正在使用谷歌距离矩阵 api 来获取两个位置之间的距离。我在全局范围内声明了一个变量。在函数中更改了此变量。但按照正常情况,我应该能够在调用我的函数后访问这个更改的变量值。但是现在我无法访问变量的更改值。我的代码是:
var distance = require('google-distance-matrix');
var origins = ['San Francisco CA'];
var destinations = ['New York NY'];
distance.key('My API key');
distance.units('imperial');
// my global variabel
let ourdistance;
function getdistance(){ distance.matrix(origins, destinations, function (err, distances) {
for (var i=0; i < origins.length; i++) {
for (var j = 0; j < destinations.length; j++) {
var origin = distances.origin_addresses[i];
var destination = distances.destination_addresses[j];
if (distances.rows[0].elements[j].status == 'OK') {
var distance = distances.rows[i].elements[j].distance.text;
console.log("This is the distance covered "+ distance);
//changing global variable value inside function
ourdistance=distance}}}});}
// calling function
getdistance();
console.log("finale distance is "+ ourdistance);
我得到的结果是:----“结局距离未定义”“这是覆盖的距离 2,903 英里”
现在我不知道为什么“这是覆盖 2,903 英里的距离”首先出现以及为什么我无法获得变量的更改值