|
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
|
Сделал через генераторы.
Темку можно закрыть
|
|