Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Запущен ли таймер (https://javascript.ru/forum/events/56605-zapushhen-li-tajjmer.html)

Roman111 24.06.2015 22:49

Запущен ли таймер
 
Есть ли в js возможность проверить запущен ли таймер?

Например вот код:
var T1 = 0;
var T2 = 0;

$(function() {
	T1 = setInterval(timer1, 1000);
	T2 = setInterval(timer2, 1000);
});

function timers_protection () {
	if (!T1) {
		T1 = setInterval(timer1, 1000);
	}
	if (!T2) {
		T2 = setInterval(timer2, 1000);
	}
}

function timer1 () {
	console.log('timer1');
}

function timer2 () {
	console.log('timer2');
}


функция timers_protection будет проверять запущены ли таймер1 и таймер2. Но как проверить работает ли таймер, если в консоли браузера прописать его остановку методом
clearInterval(<номер>)
?

Rise 25.06.2015 00:25

Roman111, а в консоли не видно разве и почему он должен работать если ты его остановил?

Roman111 29.06.2015 16:33

На сайте одни тупаки

ruslan_mart 29.06.2015 17:47

Roman111, так как ты хочешь - не получится сделать.

Как вариант, создай булеву переменную, пиши в неё true когда запускаешь таймер, а когда останавливаешь таймер, то присваивай false.

А вообще, просто обнуляй переменные таймера:

T1 = setInterval(function() {}, 1000);

//...
clearInterval(T1);
T1 = null;

//...

if(T1) {
   //есть таймер
}
else {
   //нет таймера
}

Roman111 01.07.2015 12:28

Та все получится. От например как я сделал

var time = 0;

timer1();
setInterval(timer1, 500);
setInterval(timers_protection, 500);

function timer1 () {
	time = getSeconds();
	console.log('timer1');
}

function timers_protection () {
	if (getSeconds() - time > 1) {
		timer1();
		setInterval(timer1, 500);
	}
}

function getSeconds() {
	var now = new Date();
	return now.getSeconds();
}


Просто думал, может есть не такой кривой способ


Часовой пояс GMT +3, время: 06:06.