[問題] 暫停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