function start_run(){
for(let id of ids){
id = id.split(",");
upd_obj = Markers.findIndex((obj => obj.id == id[0]));
if (upd_obj != -1) {
console.log(cancel)
if (Markers[upd_obj].status == 'e' && cancel==false){
if (settime>0) {
假設settime=10秒
每次條件達成進來這裡就需要重置時間
並在最後時間歸0時 把cancel 改成 true
}
}
}else{
Markers[upd_obj].status = id[1];
}
}
cancel=false
updateall = setTimeout(start_run, 200);
目前參考過:
let timer;
const runTimer = () => {
timer = window.setTimeout(
() => {
document.body.style.backgroundColor = 'black'
}, 3000);
}
runTimer();
document.body.onclick = () => {
clearTimeout(timer)
runTimer()
}
發現setTimeout() 在迴圈裡就被獨立看待,導致會變成多個function在跑setTimeout()
也曾經想用delay,不過程式如果delay會導致資訊update不即時,所以也沒採用。
想請問還有沒有其他寫法能在settime那邊解決重置時間的問題