Тема: setTimeout()
Показать сообщение отдельно
  #7 (permalink)  
Старый 04.08.2010, 02:16
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от DjTarik Посмотреть сообщение
setTimeout('...', 1000);
wrapper.parentNode.removeChild(wrapper);
eclipse.parentNode.removeChild(eclipse);

Пока работает таймер - функции должны ждать.
Можно ли так сделать?
Как тогда поступать в таких случаях?
Если Ваша ГЛАВНАЯ функция может работать неизвестное количество времени (1-1000 секунд хи-хи), то setTimeout здесь ни причем. После того как пройден оператор setTimeout('...', 1000) - следующая строчка wrapper.parentNode.removeChild(wrapper); выполнится мгновенно!
В Вашем случае надо делать систему семафоров. Есть главная функция Х, которая выполняет некую работу (вроде как изменение прозрачности чего-то). Эта функция должна по факту выполнения взвести флажок "я выполнила свою работу". По ходу Вы запускаете setTimeout('Y()', 1000); эта Y раз в секунду проверяет состояние флажка. И, как только он взведён - начинает выполнять свою работу (удаление объекта). В конце Y сбрасывает флажок.
Ответить с цитированием