我是这个帖子问题的新手,首先请对不起我的英语和语法等等。我为我的项目做了这个,我长期坚持这种情况仍然无法解决。任何人遇到类似的问题或知道如何克服它请赐教!谢谢大家阅读本文。
Scenario- 我需要计算许多起源和目的地之间的距离,并且由于Google API的限制,我必须将我的目的地分成几个数组并放入for循环以请求结果。我知道google api有异步的东西,所以我在这里面临一些困难,我的javascript / php语言不强;(
我尝试使用for循环来调用多个请求并从回调中收集结果来执行操作,但我现在继续获得3个请求的“UNKNOWN ERROR”状态,并且两个获得该状态。我的示例代码如下:
(目的地有许多分成几个数组)
<script>
var tempArray = new Array();
for(var i = 0 ; i < fullDestArray.length ; i++){
//push the fullDestArray into another temp array
tempArray.push(fullDestArray[i]);
if(condition of matching the limit for each request maximum destinations)
{
requestCalculate(tempArray);
tempArray.length = 0; // reset the array for next loop
}
}
//google api part
function requestCalculate(arrayReceived){
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
origins: originArray, //from other palces
destinations: arrayReceived,//[destinationC, destinationA,destinationB],
travelMode: google.maps.TravelMode.DRIVING,
avoidHighways: false,
avoidTolls: false
}, callback2 );
function callback2(response, status) {
if (status != google.maps.DistanceMatrixStatus.OK) {
}else{
//Perform some adjustment on result and push to another array for further action.
if(finish all callback)
{
doThing();
}
}
}
}
doThing()
{
//perform task
}
</script>