JS метод Object.clearTimeout()


Загальний опис

clearTimeout() є глобальною функцією, яка відіграє ключову роль у керуванні часовими інтервалами. Вона призначена для скасування запланованих дій, які були встановлені за допомогою setTimeout(). Ця функція має велике значення, коли мова йде про додавання гнучкості до асинхронної поведінки веб-додатків, дозволяючи розробникам контролювати час виконання певних дій.

Основною сутністю clearTimeout() є можливість скасувати запланований за допомогою setTimeout() виклик функції, перш ніж він відбудеться. Це особливо корисно в сценаріях, де виконання певних дій може стати непотрібним або зайвим через зміну стану програми. Наприклад, у веб-додатках, де користувач може скасувати запит, або у ситуаціях, коли потрібно запобігти виконанню функції, якщо певні умови не були виконані.

Щоб використати clearTimeout(), спочатку потрібно створити таймер за допомогою setTimeout(). setTimeout() повертає унікальний ідентифікатор, який потім можна використати як аргумент для clearTimeout(), щоб скасувати заплановану дію.

Ось простий приклад:

let timerId = setTimeout(() => {
  console.log('Цей текст не буде виведений!');
}, 3000);

clearTimeout(timerId);

У цьому прикладі, повідомлення в консолі ніколи не виведеться, оскільки таймер скасовано до його активації.

У більш складних сценаріях clearTimeout() може використовуватися для керування кількома таймерами, а також у випадках, коли потрібно динамічно керувати часовими інтервалами в залежності від користувацьких дій або інших подій. Наприклад, при створенні ігор або інтерактивних анімацій, де таймери потрібно скасовувати або перезапускати на основі дій користувача.

function delayedGreeting() {
  let timerId = setTimeout(() => {
    console.log('Привіт!');
  }, 5000);

  document.getElementById('cancelButton').addEventListener('click', () => {
    clearTimeout(timerId);
    console.log('Вітання скасовано.');
  });
}

delayedGreeting();

У цьому прикладі, якщо користувач натисне кнопку "cancelButton" до того, як мине 5 секунд, виведення вітання в консоль буде скасовано.

Важливо пам'ятати, що якщо clearTimeout() викликається з ідентифікатором таймера, який уже виконався або не існує, він не матиме жодного ефекту. Також, після скасування таймера, ідентифікатор таймера повинен вважатися недійсним і не повинен використовуватися повторно.

автор: Bond

Порада

Завжди вказуйте ідентифікатор таймера (timerId), щоб мати можливість скасувати таймер пізніше. Не залишайте таймери без ідентифікаторів, оскільки це може призвести до небажаних результатів у вашому коді. Наприклад:

const timerId = setTimeout(() => {
 // Робота, яка виконується через певний час
}, 5000);

// Пізніше, можна скасувати цей таймер за допомогою clearTimeout(timerId);
автор: Bond
Порада

Таймери можна використовувати для виконання різних дій, таких як анімація, автоматичне оновлення даних і багато іншого. Важливо слідкувати за тим, як часто вони виконуються, щоб уникнути надмірного навантаження на браузер або сервер.

Приклад таймера для автоматичного оновлення даних кожні 10 секунд:

function updateData() {
 // Оновлення даних
}

const updateInterval = 10000; // 10 секунд
const updateTimerId = setInterval(updateData, updateInterval);

// Для скасування таймера можна використовувати clearInterval(updateTimerId);
автор: Bond
Порада

Пам'ятайте, що функції, які передаються в метод setTimeout() або setInterval(), виконуються асинхронно. Це означає, що вони можуть виконатися пізніше, ніж ви очікуєте, і мають доступ до контексту, в якому вони були створені. Наприклад:

const message = "Привіт з таймера!";
setTimeout(() => {
 console.log(message); // Функція має доступ до змінної message
}, 2000);

Цей приклад демонструє, як функція, передана в setTimeout(), може використовувати змінну message, навіть якщо вона була створена поза контекстом таймера.

автор: Bond

Синтаксис

clearTimeout(timeoutID)

Параметри

timeoutID

Ідентифікатор таймауту, який ви хочете скасувати. Цей ідентифікатор був повернутий відповідним викликом setTimeout().

автор: Bond

Повернення

none

Повертає значення "undefined" (не визначено).

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 4 4 12 4
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0* 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми можемо створити вікно сповіщення, яке автоматично закриється після певного часу, і використовуємо clearTimeout(), щоб скасувати закриття вікна, якщо користувач взаємодіє з ним.

// Оголошуємо змінну для збереження ідентифікатора таймера
let timerId;

// Функція для створення і показу вікна сповіщення
function showNotification() {
  const notification = document.createElement("div");
  notification.textContent = "Це сповіщення автоматично закриється через 5 секунд.";

  // Додаємо сповіщення до документу
  document.body.appendChild(notification);

  // Запускаємо таймер і зберігаємо його ідентифікатор
  timerId = setTimeout(() => {
    document.body.removeChild(notification);
  }, 5000); // Закрити сповіщення через 5 секунд
}

// Викликаємо функцію для показу сповіщення
showNotification();

// Якщо користувач взаємодіє зі сповіщенням і хоче його залишити відкритим
clearTimeout(timerId); // Таймер скасований
автор: Bond

У цьому прикладі користувач може запустити таймер на 5 секунд за допомогою кнопки "Запустити таймер" і скасувати його, натиснувши кнопку "Скасувати таймер". Використовуючи метод clearTimeout(), ми можемо скасувати виконання функції timerCallback(), яка викликається після закінчення таймера.

автор: Bond

У цьому прикладі ми створюємо простий таймер, який виводить повідомлення після певного інтервалу, і маємо можливість скасувати виведення цього повідомлення за допомогою методу clearTimeout().

// Оголошуємо змінну для збереження ідентифікатора таймера
let timerId;

// Функція, яка виводить повідомлення
function showMessage() {
  console.log("Повідомлення виведене.");
}

// Запускаємо таймер і зберігаємо його ідентифікатор
timerId = setTimeout(showMessage, 5000); // Вивести повідомлення через 5 секунд

// Якщо потрібно скасувати таймер
clearTimeout(timerId); // Таймер скасований
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід