timer
timer
Автоматически переведённая страница
К сожалению, на полный ручной перевод у нас не хватает ресурсов.
Если вы увидели ошибку — отправьте пул-риквест с исправлениями (ссылка для редактирования в конце страницы).
timer
позволяет создавать таймеры, опционально выполняя функцию при достижении определенного времени.
Примеры:
// Добавить таймер
timer.add(1000, 'test');
// или:
new CtTimer(1000, 'test');
# Добавить таймер
timer.add 1000, 'test'
# или:
new CtTimer 1000, 'test'
// Создать новый таймер и сохранить его в переменной `timer`
// Записать "Готово!" когда пройдет 2,5 секунды
var timer = timer.add(2500, 'test');
timer.then(() => {
// Сделать что-то полезное
hero.invinvible = false;
console.log('Готово!');
})
// Часть `.catch` не требуется. Без нее вы увидите ошибки в консоли, когда таймеры будут прерваны,
// либо вручную, либо при переходе в другую комнату
.catch(e => {
console.log('Таймер удален', e);
// Добавьте код здесь, чтобы важная информация все равно получалась при переходе в другую комнату:
hero.invinvible = false;
});
// Записать оставшееся время
console.log(timer.time);
// Остановить таймер. Он не вызовет код внутри блока `then(() => …)`
timer.reject();
// Активировать таймер вручную
timer.resolve();
# Создать новый таймер и сохранить его в переменной `timer`
# Записать "Готово!" когда пройдет 2,5 секунды
timer = timer.add 2500, 'test'
timer.then =>
# Сделать что-то полезное
hero.invulnerable = false
console.log 'Готово!'
.catch (e) =>
# Вы можете добавить код здесь, чтобы важная информация все равно получалась при переходе в другую комнату:
console.log 'Таймер удален', e
hero.invulnerable = false
# Записать оставшееся время
console.log timer.time
# Остановить таймер. Он не вызовет код внутри блока `then => …`
timer.reject()
# Активировать таймер вручную
timer.resolve()
Методы timer
timer.add(timeMs, name) -> void
Создает новый таймер, который работает в игровом времени и подвержен ускорению/замедлению времени.
Параметр | Тип | Описание |
---|---|---|
timeMs | Number | Продолжительность таймера, в миллисекундах |
[name] | String | Имя таймера, которое будет доступно через timer.name . |
timer.addUi(timeMs, name) -> void
Создает новый таймер, который работает в шкале времени пользовательского интерфейса.
Параметр | Тип | Описание |
---|---|---|
timeMs | Number | Продолжительность таймера, в миллисекундах |
[name] | String | Имя таймера, которое можно получить через timer.name . |
Свойства таймера
CtTimer.time => number
Количество времени, в миллисекундах, за которое таймер был активен.
CtTimer.timeLeft => number
Количество времени, оставшегося до timeMs. По умолчанию равно 0.
CtTimer.name => String | false
Имя таймера, или false
, если имени не было дано.
CtTimer.uiDelta => Boolean
Если true
, то он будет использовать u.timeUi
для подсчета времени. Если false
, то он будет использовать u.time
для подсчета времени.
CtTimer.promise ⇒ Promise
Обещание, используемое для выполнения обратных вызовов после завершения таймера. Вы можете использовать его вместе с другими обещаниями и методами Promise
для создания сложных асинхронных цепей.
CtTimer.resolve => Функция
Немедленно активирует обещание, вызывая обратный вызов.
CtTimer.reject => Функция
Остановит таймер, отклонив внутренний промис.
CtTimer.rejected => Boolean
Если true, таймер был отклонен.
CtTimer.done ⇒ Boolean
Если true, таймер был выполнен.
CtTimer.settled => Boolean
Если равно true, таймер был либо отклонен, либо выполнен.
Методы таймера
CtTimer.then ⇒ void
Зеркалит CtTimer.promise.then().
Привязывает коллбэки для выполнения при выполнении или сбое внутреннего Promise.
Параметр | Тип | Описание |
---|---|---|
onfulfilled | Any | Коллбэк, который будет выполнен при выполнении Promise. |
[onrejected] | Any | Коллбэк, который будет выполнен при сбое Promise. |
CtTimer.catch => void
Отражает CtTimer.promise.catch()
.
Привязывает коллбэки для отклонения внутреннего Promise.