В настоящее время я пытаюсь настроить тайм-аут для устройства. Моя первоначальная мысль - создать тайм-аут на 15 минут, затем каждую минуту иметь интервал, запрашивать местоположение устройства и сравнивать его с предыдущим местоположением устройства. Если местоположение превышает некоторый порог, сбросьте 15-минутный таймер. Если местоположение не превышает пороговое значение, то время ожидания продолжается до истечения 15 минут, и я запускаю какой-то другой код.
Моя проблема в том, что я не могу дождаться, чтобы получить новое местоположение в стороне от интервала
timeoutFunc(minutes) {
return setTimeout(function () {
console.log("lock device")
}, minutes * 1000)
}
async rideTimer(minutes) {
let coords = this.location
this.timeOut = timeoutFunc(minutes) // init timeout func
let interval = setInterval(function () {
console.log(coords)
let newLocation = await getLocation() // get location
console.log(this.location)
// check if location changed
if (Math.abs(this.location[0] - coords[0]) > 0.001 || Math.abs(this.location[1] - coords[1]) > 0.001) {
// location did change
clearTimeout(this.timer) // clear timeout
this.timeOut = timeoutFunc(minutes) // reinitialize timeout
}// else do nothing
}, 1000)
}