Я пытаюсь написать функцию javascript, которая при вызове выполняет функцию DoSomething() один раз, но может быть запущена для многократного выполнения функции до тех пор, пока не будет остановлена.
Я использую функцию setTimeout(). Я не уверен, что это лучший метод с точки зрения производительности и памяти. Также я хотел бы избежать глобальной переменной, если это возможно
<!DOCTYPE html>
<html>
<script src="jquery.js"></script>
<script>
var globalCheckInventory = false;
$(document).ready(function(){
// start checking inventory
globalCheckInventory = true;
myTimerFunction();
});
// check inventory at regular intervals, until condition is met in DoSomething
function myTimerFunction(){
DoSomething();
if (globalCheckInventory == true)
{
setTimeout(myTimerFunction, 5000);
}
}
// when condition is met stop checking inventory
function DoSomething() {
alert("got here 1 ");
var condition = 1;
var state = 2 ;
if (condition == state)
{
globalCheckInventory = false;
}
}
</script>