Javascript как очистить интервал после определенного времени
setInterval("FunctionA()", 1000);
Теперь, как мне очистить этот интервал ровно через 5 секунд, чтобы я мог достичь -
var i = setInterval("FunctionA()", 1000);
(After 5 seconds)
clearInterval(i);
3 ответа
Решение
Вы можете сделать это используя setTimeout
функция:
var i = setInterval(FunctionA ,1000);
setTimeout(function( ) { clearInterval( i ); }, 5000);
Использование setTimeout для clearInterval не является идеальным решением. Это будет работать, но будет запускать ваш setTimeout на каждом интервале. Это нормально, если вы только очищаете интервал, но может быть плохо, если вы выполняете другой код помимо очистки интервала. Лучшее решение - использовать счетчик. Если ваш интервал срабатывает каждые 1000 мс /1сек, то вы знаете, если он срабатывает 5 раз, это было 5 секунд. Это намного чище.
count=0;
var x=setInterval(function(){
// whatever code
if(count > 5) clearInterval(x);
count++;
}, 1000);
function intervalGap(){
let no = 1;
setInterval(function(){
if(no < 11){
console.log(no);
no++;
}else{
clearInterval(this);
}}, 500); // for every half second
}
intervalGap();