Ожидание истечения времени или ввода
Функции ожидания предназначены для ожидания истечения определенного времени или получения ввода. Например, вы можете приостановить вычисления, чтобы дать пользователю время просмотреть отображение. sit-for приостанавливает выполнение и обновляет экран, а затем возвращает значение немедленно, если поступает ввод, в то время как sleep-for приостанавливает выполнение без обновления экрана.
- Функция: sit-for seconds &optional nodisp
-
Эта функция выполняет повторное отображение (если нет ожидающего ввода от пользователя), затем ожидает seconds секунд или до появления ввода. Обычно
sit-forиспользуется, чтобы дать пользователю время прочитать отображенный текст. Значением являетсяt, еслиsit-forожидал всё заданное время без получения ввода (см. Разное по вводу событий). В противном случае, значением являетсяnil.Аргумент seconds не обязательно должен быть целым числом. Если он является дробным,
sit-forожидает дробное количество секунд. Некоторые системы поддерживают только целые значения секунд; на таких системах seconds округляется вниз.Выражение
(sit-for 0)эквивалентно(redisplay), т.е. оно запрашивает повторное отображение без задержки, если нет ожидающего ввода. См. Принудительное повторное отображение.Если nodisp имеет ненулевое значение, то
sit-forне выполняет повторное отображение, но всё равно возвращает значение, как только ввод становится доступным (или по истечении таймаута).В пакетном режиме (см. Пакетный режим),
sit-forнельзя прервать, даже вводом со стандартного дескриптора ввода. Таким образом, он эквивалентенsleep-for, который описан ниже.Также можно вызвать
sit-forс тремя аргументами, как(sit-for seconds millisec nodisp), но это считается устаревшим.
- Функция: sleep-for seconds &optional millisec
-
Эта функция просто приостанавливает выполнение на seconds секунд без обновления отображения. Она не обращает внимания на доступный ввод. Возвращает значение
nil.Аргумент seconds не обязательно должен быть целым числом. Если он является дробным,
sleep-forожидает дробное количество секунд. Некоторые системы поддерживают только целые значения секунд; на таких системах seconds округляется вниз.Необязательный аргумент millisec указывает дополнительный период ожидания в миллисекундах. Он добавляется к периоду, указанному в seconds. Если система не поддерживает ожидание дробных долей секунды, вы получите ошибку, если вы укажете ненулевое значение millisec.
Используйте
sleep-forкогда необходимо гарантировать задержку.
См. Время суток для функций получения текущего времени.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Waiting.html