Метод resume()

Метод resume() используется для продолжения таймера уведомления, если он был ранее приостановлен методом pause(). В контексте библиотеки Noty это особенно важно для контроля времени отображения уведомлений, которые автоматически закрываются через заданный промежуток времени (timeout).


Синтаксис

notyInstance.resume();

Параметры: отсутствуют. Возвращаемое значение: объект уведомления (Noty), что позволяет использовать цепочку вызовов методов.


Основные сценарии использования

  1. Возобновление паузы таймера Когда уведомление приостанавливается через pause(), оно не исчезает автоматически. Вызов resume() возобновляет отсчёт времени до скрытия:
let notification = new Noty({
    text: 'Событие успешно выполнено',
    timeout: 5000
}).show();

notification.pause();  // приостановка таймера через 2 секунды
setTimeout(() => {
    notification.resume();  // возобновление таймера через 5 секунд
}, 5000);

В этом примере уведомление будет скрыто через общее время в 10 секунд с момента показа, так как таймер был приостановлен на 5 секунд.


  1. Использование вместе с hover событиями Часто требуется приостанавливать уведомления, когда курсор находится над ними, и возобновлять после ухода курсора. resume() отлично подходит для этого:
let notification = new Noty({
    text: 'Секретное уведомление',
    timeout: 3000
}).show();

notification.on('mouseenter', function() {
    this.pause();
});

notification.on('mouseleave', function() {
    this.resume();
});

Такое поведение делает уведомления более удобными для пользователя, так как время исчезновения зависит от взаимодействия с элементом.


Взаимодействие с другими методами

  • pause() и resume() Метод pause() приостанавливает таймер, а resume() продолжает его работу с того места, где он был остановлен.

  • setTimeout() и clearTimeout() Внутренне Noty использует нативный setTimeout для контроля таймера. Вызов resume() фактически возобновляет этот таймер.

  • close() Если уведомление закрыто вручную через close(), вызов resume() не имеет эффекта, так как таймер уже уничтожен вместе с уведомлением.


Практические рекомендации

  1. Комбинирование с событиями интерфейса resume() чаще всего используется для улучшения UX при взаимодействии с уведомлениями. Это позволяет динамически контролировать время их видимости.

  2. Отложенное возобновление Метод можно вызывать через setTimeout для создания задержки перед продолжением отсчёта:

notification.pause();
setTimeout(() => {
    notification.resume();
}, 2000);
  1. Цепочка методов Noty поддерживает метод chaining, поэтому resume() можно комбинировать с другими методами:
notification.pause().setText('Новое сообщение').resume();

Пример полного сценария

let infoNoty = new Noty({
    type: 'info',
    text: 'Процесс обработки данных',
    timeout: 4000,
    progressBar: true
}).show();

infoNoty.on('mouseenter', function() {
    this.pause();
});

infoNoty.on('mouseleave', function() {
    setTimeout(() => this.resume(), 1000); // возобновление через 1 секунду после ухода курсора
});

В этом примере уведомление о процессе обработки данных останется видимым, пока пользователь взаимодействует с ним, и продолжит таймер с небольшой задержкой после ухода курсора.


Метод resume() обеспечивает гибкое управление временем отображения уведомлений в Noty, позволяя создавать динамичные, интерактивные уведомления, которые учитывают действия пользователя и позволяют контролировать их исчезновение с высокой точностью.