微信小程序經(jīng)驗分享:位置鬧鈴之定時器的講解
需求
設(shè)定了監(jiān)控點位置以后就需要按照一定的時間間隔取得設(shè)備的位置,并比照設(shè)定好的監(jiān)控點,如果有符合條件的監(jiān)控點則觸發(fā)相應(yīng)的動作。為了實現(xiàn)上述功能首先需要實現(xiàn)按一定時間間隔做某件事的功能--定時器。
說明
function?startTimer(interval, onTimer) {
????var?time =?setTimeout(function?() {
? ??????onTimer();
? ? ??? startTimer(interval, onTimer);
? ????? },
? ? ????interval
??? )
}
函數(shù)startTimer內(nèi)部調(diào)用了setTimeout函數(shù),這個函數(shù)有兩個參數(shù):一個是Timeout發(fā)生時被調(diào)用的回調(diào)函數(shù)(借用C語言的說法),一個是時間間隔,單位是毫秒。
startTimer執(zhí)行之后,系統(tǒng)開始計時。當(dāng)指定的事件間隔經(jīng)過以后,回調(diào)函數(shù)被執(zhí)行:首先調(diào)用onTimer函數(shù),它由startTimer的利用者指定。接下來再次調(diào)用startTimer函數(shù),用于啟動下一次定時器動作。如此循環(huán)往復(fù)。
使用時就簡單了,例如可以像下面這樣使用startTimer函數(shù)。
onLoad:function(){
? ?startTimer(1000,function(){
? ? ?console.log("OnTimer!")
? ?});
?},
目前雖然只是輸出log,加下來的幾天里,我們會以這里為入口,實現(xiàn)定期取得目前位置,確認監(jiān)控點的功能。