[问题] 暂停javascript程式

楼主: kuan0817 (大侠爱吃汉堡包)   2015-04-20 16:22:03
目前我正在做一个project, 会用到google direction API
以及geometry library (主要是用里面的某一个islocatededge function)
大概介绍一下project目的:
跑循环, 每次送一对起终点, 然后用directionservice算route
然后用isLocationOnEdge来看是否我在意的一些路口有在route上
因为google在query数量上有限制, 因此我每两秒才送一个query
(我目前用settimeout)
但发现程式执行到大约270左右个query时, gogole就开时回传over limit query的status
因此想要动态延长等待的时间,
但因为我的循环中的setimeout是类似这样做
function doSetTimeout(a,b) {
setTimeout(function() {
getRoute(a, b); //抓路口是否在route上的function
}, times*2000);
times++
}
感觉像是一开始就把query都ready to send out, 只是隔两秒才会真正发送出去
请问有办法动态调整等待时间吗?
或是让程式暂停
在if (status == google.maps.DirectionsStatus.OVER_QUERY_LIMIT) 时
我查过似乎javascript没有这种功能?)
或是有其他更好的作法呢?
谢谢!
ˇ
作者: mmis1000 (秋月恋枫)   2015-04-20 17:18:00
做成一个query list阿,然后用另一个setInterval定时执行,只要列表里有东西就执行这样然后如果回传值有问题,就暂停住,等个几秒再继续http://jsbin.com/mukozo/1/edit?js,console如果要async还要再做些手脚,这个是async task的版本更正sync task
作者: tooto1985 ( )   2015-04-30 23:44:00
callback + setTimeout可以达成,但要像alert停住不行

Links booklink

Contact Us: admin [ a t ] ucptt.com