Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   setTimeout() (https://javascript.ru/forum/events/11042-settimeout.html)

DjTarik 10.08.2010 23:51

Перечитал тему ещё пару раз.

flag == false;
f = function()
	{
		if (flag == true)
			{
				alert('Поехали дальше');
			}
		else	
			{
				setTimeout(function(){flag = true}, 1000);
				f();
			}	
	}


Пишет, что: "too much recursion"

Так и не могу понять, как это сделать... O_o

Octane 10.08.2010 23:54

setTimeout не останавливает выполнение скрипта

DjTarik 11.08.2010 00:21

Да это всё понятно... Но проблема всё равно остаётся...

Octane 11.08.2010 00:25

Что не понятного то? Еще до запуска function(){flag = true}, функция f успевает выполнится рекурсивно слишком много раз. Притом еще миллион таймеров создается. Такое ощущение, что все предыдущие сообщения в этой теме вы не читали. Разберитесь как работает setTimeout в JavaScript, почитайте про асинхронное программирование, коллбэки.

DjTarik 11.08.2010 00:35

Я это просто как пример написал. Попробовал - не пашет. Как решить проблему из первого сообщения - не знаю. =(


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