Имя: Пароль:
1C
 
JavasScript: Как проверить выполнились ли все таймеры?
0 D_Pavel
 
21.07.16
20:02
В разных местах программы и даже в циклах создаются таймеры с разной задержкой. Нужно сделать проверку сработали ли все таймеры или еще есть не завершенные, для того чтобы решить можно ли закрывать страницу.

Вопрос: Как это сделать?
1 H A D G E H O G s
 
21.07.16
20:04
Если Таймер1Завершен И Таймер2Завершен...
2 Garykom
 
гуру
21.07.16
20:08
(1) это js а не 1С УФ и без модальности тока еще интереснее
3 Garykom
 
гуру
21.07.16
20:10
(0) создаешь функцию которая вызывается при попытке закрытия, внутри список таймеров
Каждый таймер при старте получает эту 1 функцию как параметр и аналогично при завершении тоже ей говорит я все
4 Garykom
 
гуру
21.07.16
20:10
(3) по сути объект-функция как глобальная переменная
5 Mauser
 
21.07.16
23:30
(0) Если какая-то страница будет решать можно или нельзя мне ее закрыть, я пожалуй вспомню маму ее создателя и закрою весь браузер. Хоть обзапрещайся.

Не надо тебе за таймерами следить, надо текущее состояние понимать и правильно реагировать.
6 Jija Grenkov
 
22.07.16
00:34
(3) есть зло в кодинге, которое называют "Callback hell". Не лучше ли реализовать этот механизм через промисы, сложить их в массив и дождаться завершение все через promise.all()
7 D_Pavel
 
22.07.16
05:48
(3) Это придется переписывать все функции таймеров, а так же писать письмо потомкам которые будут добавлять новые таймеры в эту программу с инструкцией как это сделать чтобы не сломалось. Короче плохой вариант, хотя это первое о чем я тоже подумал.
8 D_Pavel
 
22.07.16
05:50
(5) Тебя никто близко не подпустит к этой странице, не волнуйся. Закрывать страницы будет специально обученный бот.
9 D_Pavel
 
22.07.16
05:51
(6) Ок, посмотрю можно ли это сделать!
10 D_Pavel
 
22.07.16
08:02
Сделал через генераторы.
Темку можно закрыть
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.