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





