Javascript 超过查询限制和最大调用堆栈大小
在这里,我使用google地图、google places和routebox库创建了一个代码,以显示两个位置之间的方向,并使用google places显示接近方向(10,20,30英里)的对象 下面是演示和代码:但在尝试了“10米”距离后,从马德里到莫斯科,我发现以下错误:Javascript 超过查询限制和最大调用堆栈大小,javascript,limit,settimeout,google-places-api,callstack,Javascript,Limit,Settimeout,Google Places Api,Callstack,在这里,我使用google地图、google places和routebox库创建了一个代码,以显示两个位置之间的方向,并使用google places显示接近方向(10,20,30英里)的对象 下面是演示和代码:但在尝试了“10米”距离后,从马德里到莫斯科,我发现以下错误: ... ... ... OVER_QUERY_LIMIT 55:121 199 OVER_QUERY_LIMIT 55:121 OK 55:121 1268
...
...
...
OVER_QUERY_LIMIT 55:121
199
OVER_QUERY_LIMIT 55:121
OK 55:121
1268
OVER_QUERY_LIMIT 55:121
3
OVER_QUERY_LIMIT
Uncaught RangeError: Maximum call stack size exceeded
此代码:
service.nearbySearch(request, function (results, status) {
console.log(status);
if (status == 'OVER_QUERY_LIMIT') {
setTimeout(findPlaces(boxes,searchIndex),10000);
}else{
document.getElementById('side_bar').innerHTML += "bounds["+searchIndex+"] returns "+results.length+" results<br>";
for (var i = 0, result; result = results[i]; i++) {
var marker = createMarker(result);
}
if (++searchIndex < boxes.length)
setTimeout(findPlaces(boxes,searchIndex),10000);
}
});
service.nearbySearch(请求、功能(结果、状态){
控制台日志(状态);
如果(状态==“超过查询限制”){
setTimeout(findPlaces(框、搜索索引),10000);
}否则{
document.getElementById('side_bar')。innerHTML+=“bounds[“+searchIndex+”]返回“+results.length+”结果
”;
for(变量i=0,结果;结果=结果[i];i++){
var marker=createMarker(结果);
}
如果(++searchIndex
此代码停止在框[14]中搜索。为什么?
在调用下一个框前10秒,我在codesetTimeot
中输入密码
这里真正的问题是什么?您必须将对
findPlaces
的调用包装到一个函数中,否则该函数将立即被调用,并且不会产生所需的延迟:
setTimeout(function(){findPlaces(boxes,searchIndex);},10000);
什么是:UncaughtRangeError:超过了最大调用堆栈大小,以及为什么我在使用10秒pt setTimeot时超过了查询限制。。。我认为那个脚本工作得快得多。。。