Javascript 超过查询限制和最大调用堆栈大小

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

在这里,我使用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
    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秒,我在code
setTimeot
中输入密码


这里真正的问题是什么?

您必须将对
findPlaces
的调用包装到一个函数中,否则该函数将立即被调用,并且不会产生所需的延迟:

setTimeout(function(){findPlaces(boxes,searchIndex);},10000);

什么是:UncaughtRangeError:超过了最大调用堆栈大小,以及为什么我在使用10秒pt setTimeot时超过了查询限制。。。我认为那个脚本工作得快得多。。。