ПРИМЕЧАНИЕ: таймеры используют NSTimer внутри, который будет приостановлен, когда компьютеры спят. Особенно повторяющиеся таймеры не будут срабатывать в указанное время, когда между ними есть периоды сна. Обходным решением является предотвращение сна системы, настроенного в Энергосбережение в Системных настройках.
microsecs - Число, содержащее время в микросекундах, на которое заблокировать
Возвращает
Нет
Примечания
Использование этой функции настоятельно не рекомендуется, так как она блокирует все выполнение на главном потоке в Hammerspoon. Это означает, что горячие клавиши или события не будут обрабатываться в течение этого времени, не будут происходить обновления графического интерфейса и не будет выполняться Lua. Это предоставляется только как крайняя мера или для очень коротких пауз. Во всех других случаях вы действительно должны разбивать свой код на несколько функций и вызывать hs.timer.doAfter()
Создаёт и запускает таймер, который выполнит fn в заданное (локальное) time время, а затем (необязательно) повторит его каждые interval.
Parameters
time - количество секунд после полуночи (по локальному времени) или строка в формате "ЧЧ:ММ" (24-часовое локальное время), указывающая желаемое время срабатывания
repeatInterval - (необязательно) количество секунд между срабатываниями, или строка в формате "ДДд", "ДДдЧЧч", "ЧЧчММм", "ЧЧч" или "ММм" указывающая дни, часы и/или минуты между срабатываниями; если опущено или 0 таймер сработает только один раз
fn - функция, которая будет вызываться каждый раз при срабатывании таймера
continueOnError - необязательный булевый флаг, по умолчанию false, который указывает, что таймер не должен автоматически останавливаться, если функция обратного вызова приводит к ошибке.
Returns
объект таймера
Notes
Таймер может сработать до 1 секунды раньше или позже
Первое срабатывание будет установлено на самое раннее время, учитывая repeatInterval; если это опущено, и time раньше текущего времени, таймер сработает на следующий день. Если интервал повтора равен ровно 24 часам, вы можете запланировать регулярные задачи, которые будут выполняться в ожидаемое время независимо от того, был ли Hammerspoon перезапущен/перезагружен. Например:
Если сейчас 19:00, hs.timer.doAt("20:00",somefn) установит таймер через 1 час
Если сейчас 21:00, hs.timer.doAt("20:00",somefn) установит таймер через 23 часа
Если сейчас 21:00, hs.timer.doAt("20:00","6h",somefn) установит таймер через 5 часов (в 02:00)
Чтобы запускать задачу каждый час в час с 8:00 до 20:00: for h=8,20 do hs.timer.doAt(h..":00","1d",runJob) end
Создаёт и запускает таймер, который выполнит actionFn каждые checkinterval секунды, пока predicateFn не вернёт true. Таймер автоматически останавливается, когда predicateFn возвращает true.
Parameters
predicateFn - функция, определяющая, когда следует прекратить вызывать actionFn. Эта функция не принимает аргументов, но должна возвращать true, когда следует прекратить вызывать actionFn.
actionFn - функция, выполняющая желаемое действие. Эта функция может принимать один аргумент — сам таймер.
checkInterval - необязательный параметр, указывающий, как часто повторять проверку predicateFn. По умолчанию 1 секунда.
Returns
объект таймера
Notes
Таймер передаётся как аргумент в actionFn для того, чтобы он мог досрочно остановить таймер (т.е. до того, как predicateFn вернёт true), если это необходимо.
См. также hs.timer.doWhile, что по сути является противоположностью этой функции
Создаёт и запускает таймер, который будет выполнять actionFn каждые checkinterval секунды, пока predicateFn возвращает true. Таймер автоматически останавливается, когда predicateFn возвращает false.
Parameters
predicateFn - функция, определяющая, когда следует прекратить вызывать actionFn. Эта функция не принимает аргументов, но должна возвращать false, когда следует прекратить вызывать actionFn.
actionFn - функция, выполняющая желаемое действие. Эта функция может принимать один аргумент — сам таймер.
checkInterval - необязательный параметр, указывающий, как часто повторять проверку predicateFn. По умолчанию 1 секунда.
Returns
объект таймера
Notes
Таймер передаётся как аргумент в actionFn для того, чтобы он мог досрочно остановить таймер (т.е. до того, как predicateFn вернёт false), если это необходимо.
См. также hs.timer.doUntil, что по сути является противоположностью этой функции
Создаёт новый hs.timer объект для повторения вызовов с интервалом
Parameters
interval - Количество секунд между запусками таймера
fn - Функция, которая будет вызываться каждый раз при запуске таймера
continueOnError - Необязательный булевый параметр, true, если таймер должен продолжать срабатывать после того, как функция обратного вызова создала ошибку, false, если таймер должен перестать срабатывать после того, как функция обратного вызова создала ошибку. По умолчанию false.
Returns
Объект hs.timer
Notes
Созданный объект не запускает свой таймер до тех пор, пока не будет вызван его метод :start()
Если interval равно 0, таймер не будет повторяться (поскольку в противном случае он бы повторялся с максимальной скоростью вашего компьютера, что, как правило, нежелательно)
Для ненулевых интервалов минимально допустимое значение интервала составляет 0,00001 секунды. Значения >0 и <0,00001 будут приведены к 0,00001
Создаёт и запускает таймер, который выполнит actionFn когда predicateFn возвращает true. Таймер автоматически останавливается, когда вызывается actionFn.
Parameters
predicateFn - функция, определяющая, когда actionFn должен быть вызван. Эта функция не принимает аргументов, но должна возвращать true, когда следует вызвать actionFn.
actionFn - функция, выполняющая желаемое действие. Эта функция может принимать один аргумент — сам таймер.
checkInterval - необязательный параметр, указывающий, как часто повторять проверку predicateFn. По умолчанию 1 секунда.
Returns
объект таймера
Notes
Таймер останавливается до того, как вызывается actionFn, но таймер передаётся как аргумент в actionFn, чтобы функция actionFn могла перезапустить таймер, чтобы он снова был вызван в следующий раз, когда predicateFn вернёт true.
См. также hs.timer.waitWhile, что по сути является противоположностью этой функции
Создаёт и запускает таймер, который выполнит actionFn когда predicateFn вернёт false. Таймер автоматически останавливается, когда вызывается actionFn.
Parameters
predicateFn - функция, определяющая, когда actionFn должен быть вызван. Эта функция не принимает аргументов, но должна возвращать false, когда следует вызвать actionFn.
actionFn - функция, выполняющая желаемое действие. Эта функция может принимать один аргумент — сам таймер.
checkInterval - необязательный параметр, указывающий, как часто повторять проверку predicateFn. По умолчанию 1 секунда.
Returns
объект таймера
Notes
Таймер останавливается до того, как вызывается actionFn, но таймер передаётся как аргумент в actionFn, чтобы функция actionFn могла перезапустить таймер, чтобы он снова был вызван в следующий раз, когда predicateFn вернёт false.
См. также hs.timer.waitUntil, что по сути является противоположностью этой функции
Возвращает количество секунд до следующего срабатывания таймера.
Parameters
None
Returns
Число, содержащее количество секунд до следующего запуска.
Notes
Возвращаемое значение может быть отрицательным целым числом в двух случаях:
Цикл обработки Hammerspoon загружен и догоняет пропущенные срабатывания таймера.
Объект таймера в данный момент не работает. В этом случае возвращаемое значение этого метода равно количеству секунд с момента последнего срабатывания (вы можете проверить, работает ли таймер или нет, с помощью hs.timer:running()).
Таймер не вызовет обратный вызов немедленно, таймер будет ждать, пока он не сработает.
Если функция обратного вызова приводит к ошибке, таймер будет остановлен, чтобы предотвратить повторные сообщения об ошибках (см. параметр continueOnError в hs.timer.new(), чтобы переопределить это).