NodeJS: используйте цикл setInterval только тогда, когда другая переменная имеет значение true

function setNormal() {
    console.log(1)
}

function setAlert() {
    console.log(2)
}

function alertFunction() {
    alertVar = setInterval(alertFunc, 600);
}

function alertFunc() {
    setAlert()
    setTimeout(setNormal, 300)
}
alertFunction()
});

как заставить функцию alertFunction() работать только тогда, когда (например) var loop = 1, а затем останавливаться, когда var loop = 0?

(это мой первый пост в stackoverflow, так что извините, если я сделал это неправильно)


person ElkTF2    schedule 28.07.2018    source источник
comment
Я бы пересмотрел вашу базовую книгу по JavaScript и взглянул на оператор if. Чтобы остановить интервал, сделайте Google для очистки интервала javascript.   -  person    schedule 28.07.2018


Ответы (2)


используйте setTimeout с условием.

var x = 1;

setTimeout(function foo(){
  // this is a named function expression, foo name only exists inside itself
  if(x!==0){
     // do some code
     console.log("Hello");
     setTimeout(foo,1000);
  }
},1000);

setTimeout(function(){
   // change x after 3 seconds
   x = 0;
},3000);

Вы также можете использовать четкий интервал, чтобы сделать то же самое

var x = 1;

var interval = setInterval(function (){
  if(x!==0){
     // do some code
     console.log("Hello");
  }else{
     clearInterval(interval)
  }
},1000);

setTimeout(function(){
   // change x after 3 seconds
   x = 0;
},3000);

person mpm    schedule 28.07.2018

Используйте как это: -

var alertVar;
function alertFunction() {
    alertVar = setInterval(alertFunc, 600);
}
function myStopFunction() {
    clearInterval(alertVar);
}
if(lool=1){
   alertFunction();
}
if(lool=0){
   myStopFunction();
}
person Sandeep Bangarh    schedule 28.07.2018