我怎么能等待谷歌远程呼叫返回我的结果之前继续
how can i wait for a google distance call to return my result before carrying on
我正试图找出一种启动谷歌距离矩阵调用的方法,我需要在我可以继续我的程序执行之前返回结果,使用javascript和jquery。如果有人能帮忙,请帮忙代码示例的想法。我有多条腿来跑远。即:第一段起点和终点第二回合的起止点第三段起点和终点我要做的是计算不同腿之间的旅行时间,所以第一赛段完成后,车手需要开始第二赛段。通过调用来获取第一段终点和第二段起点之间的距离。然后进行下一个计算。我已经有腿的距离,所以,我的代码如下:
var driving = 0;
calculateDistances();
code to work with the calculatedistances() result here
function calculateDistances() {
//alert(origin+','+destination);
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
//set origin and destination points
origins: [origin],//, origin2],
destinations: [destination],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
}, callback);
}
function callback(response, status) {
if (status != google.maps.DistanceMatrixStatus.OK) {
alert('Error was: ' + status);
} else {
var origins = response.originAddresses;
var destinations = response.destinationAddresses;
var outputDiv = '';
for (var i = 0; i < origins.length; i++) {
var results = response.rows[i].elements;
//addMarker(origins[i], false);
for (var j = 0; j < results.length; j++) {
driving = parseFloat(results[j].distance.text); // driving is a script wide variable to hold the return value
}
}
}
}
向calculateDistances()函数传递一个回调,您可以通过传入callback并在方法末尾使用callback()执行它来实现。为清晰起见,将函数调用为其他名称。
var driving = 0;
calculateDistances(callbackFunction);
function calculateDistances(callback) {
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
//set origin and destination points
origins: [origin],//, origin2],
destinations: [destination],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
}, callback());
}
function callbackFunction(response, status) {
if (status != google.maps.DistanceMatrixStatus.OK) {
}
//etc
}
相关文章:
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 我希望只有在我滚动页面后才能显示我的返回页首图标
- 变量dos'即使我可以返回更新后的值,也不会改变
- 尝试求和时,在我的表的页脚中返回$NaN
- 为什么typeof的数组的数组的未定义值返回为“0”;未定义的“;我的条件不认为是真的
- 为什么我的get-requesttoserver.js返回离子云9上的实际文件
- 我应该返回一个类似console.log()的方法调用吗
- 为什么我的函数没有返回准确的计数
- 当与另一个实例进行比较时,我的类实例如何隐式返回数字
- 为什么不是't我的javascript向Project Euler返回正确答案's排名第一
- 为什么我的on change事件在ie9上返回空
- 为什么我得到的是返回的[object HTML ParagraphElement]而不是我的号码
- 为什么我的$http.post返回一个400错误
- 为什么我的Mongoose findAll方法返回500错误.
- 我的函数返回“未定义”
- 为什么我的JavaScript函数没有返回选中的数组值
- 为什么我的返回值未定义(JavaScript)
- 为什么我得到逗号在我的返回值?JavaScript名人姓名揭示器
- 为什么我的返回值没有定义
- JS播放器——错误:我的返回错误不与IE10工作,但与所有其他浏览器工作