Javascript 将setTimeout添加到带有回调的函数的语法

Javascript 将setTimeout添加到带有回调的函数的语法,javascript,google-maps-api-3,asynchronous,syntax,settimeout,Javascript,Google Maps Api 3,Asynchronous,Syntax,Settimeout,我试图让下面的异步函数“在向这些目标位置行驶的x英里中,我将到达哪里?”也在执行之间等待。谷歌地图程序对速度有限制,在“超过查询限制”开始在地图上绘图之前,我可以绘制10条以上的路线 我知道服务条款(2500/天),我不会违反 它与来自中心点(pt)的所需目的地(端点)数组位于一个循环中 请问这是什么语法? 我在这个网站和其他网站上读了很多书,可以看到函数应该用引号括起来,但是对于异步调用,我看不出怎么做 你可以看到我拙劣的尝试(被注释掉) var延迟=100; 对于(变量i=0;i

我试图让下面的异步函数“在向这些目标位置行驶的x英里中,我将到达哪里?”也在执行之间等待。谷歌地图程序对速度有限制,在“超过查询限制”开始在地图上绘图之前,我可以绘制10条以上的路线

我知道服务条款(2500/天),我不会违反

它与来自中心点(pt)的所需目的地(端点)数组位于一个循环中 请问这是什么语法? 我在这个网站和其他网站上读了很多书,可以看到函数应该用引号括起来,但是对于异步调用,我看不出怎么做

你可以看到我拙劣的尝试(被注释掉)

var延迟=100;
对于(变量i=0;i

一如既往地感谢您的关注和帮助

确切语法如下所示:

var delay = 100; // in milliseconds, 100 is a tenth of a second
setTimeout(function() {
    howfar(pt,endPoints[i],i, function(i,status,endPoint) {
        //process results
    });
}, delay);

不过,快速的谷歌搜索可能会发现这个问题。

如果我正确理解了您的问题,您需要等待
多远
函数返回加上固定延迟,然后才处理数组中的下一个
端点

我通常会设置一个迭代器函数,它会对自身进行调度,直到没有更多的项目需要处理。类似于:

var delay = 100;
var i = 0;
//define a helper function
var measureNext = function() {

   howfar(pt, endPoints[i], i, function(i,status,endPoint) {
     //process results

     //if there are still unprocessed items in the array, schedule
     //the next after {delay} milliseconds
     if(i++ < endPoints.length) {
       setTimeout(measureNext, delay);
     }
   });

};

//start with the first argument
measureNext();
var延迟=100;
var i=0;
//定义辅助函数
var measureNext=函数(){
多远(pt,端点[i],i,函数(i,状态,端点){
//过程结果
//如果阵列中仍有未处理的项,请计划
//{delay}毫秒后的下一个
if(i++
谢谢-这证实了我在报价中的内容(已注释掉!)我想问题是这样做的时候,我没有感受到超限回答的任何减少,但我很感谢你的回答。非常感谢。你完全理解了,这是一个梦想。我会投票,但我是一个新手。@tonygoodwin非常欢迎你。别忘了把答案也标记为接受,所以它不会永远挂在未答复的名单上。
var delay = 100;
var i = 0;
//define a helper function
var measureNext = function() {

   howfar(pt, endPoints[i], i, function(i,status,endPoint) {
     //process results

     //if there are still unprocessed items in the array, schedule
     //the next after {delay} milliseconds
     if(i++ < endPoints.length) {
       setTimeout(measureNext, delay);
     }
   });

};

//start with the first argument
measureNext();