JS метод Object.setTimeout()
Загальний опис
setTimeout() є глобальною функцією у мові програмування JavaScript. Ця функція використовується для встановлення таймауту перед викликом або виконанням функції чи коду. Основна суть setTimeout() полягає в тимчасовому відкладенні виконання певного блоку коду на задану кількість мілісекунд, що надає розробникам можливість управління виконанням коду та вирішення різних завдань в асинхронному режимі.
setTimeout() є важливим елементом для керування асинхронним кодом в JavaScript. Використовуючи цю функцію, розробники можуть визначити, коли конкретний блок коду має бути викликаний, що є корисним в різноманітних випадках, від затримок перед відображенням повідомлень до організації асинхронних операцій.
Використання в найпростіших випадках:
// Виклик функції через 3 секунди
setTimeout(() => {
console.log('Цей код викличеться через 3 секунди');
}, 3000);
У цьому простому прикладі функція, яка виводить повідомлення у консоль, буде викликана через 3 секунди після виклику setTimeout(). Це може бути корисно для відкладеного виклику коду чи функцій після певної події чи дії користувача.
Використання для повторюваних викликів:
// Повторний виклик функції кожні 2 секунди
let counter = 0;
function repeatFunction() {
console.log(`Цей код викличеться ${counter} раз`);
counter++;
if (counter === 5) {
clearInterval(repeatInterval);
console.log('Повторення завершено');
}
}
const repeatInterval = setInterval(repeatFunction, 2000);
У цьому випадку ми використовуємо setInterval() в поєднанні з setTimeout() для повтореного виклику функції repeatFunction() кожні 2 секунди. Це може бути корисно для виконання певних дій на протязі часу або для анімації.
setTimeout() дозволяє розробникам ефективно керувати виконанням коду в асинхронному середовищі JavaScript. Завдяки його гнучкості та простоті використання, ця функція використовується в різноманітних сценаріях, що відкриває широкі можливості для створення динамічних та ефективних веб-додатків.
| Порада: | Розгляньте можливість передачі аргументів у функцію чи код через
|
| Порада: | Уникайте перевантаження таймерами, особливо в асинхронних операціях. Зберігайте ідентифікатор таймера та використовуйте
|
| Порада: | Ретельно обробляйте помилки в коді, викликаному з
|
Синтаксис
setInterval(code)
setInterval(code, delay)
setInterval(func)
setInterval(func, delay)
setInterval(func, delay, arg1)
setInterval(func, delay, arg1, arg2)
setInterval(func, delay, arg1, arg2, /* …, */ argN)
Параметри
- *
func Функція, яку слід викликати кожні
delayмілісекунд. Перший виклик відбувається післяdelayмілісекунд.- *
code Синтаксис, що дозволяє вставити рядок замість функції, який компілюється і виконується кожні
delayмілісекунд.Використання цього аргументу не рекомендується з тих же причин, що і використання
eval()є ризиком для безпеки.delayЧас у мілісекундах, на який таймер повинен затримати виклик вказаної функції або коду. За замовчуванням - 0, якщо не вказано.
arg1Додаткові аргументи, які передаються функції, вказаній в
func, після закінчення таймера.
Return
integerПовертає числовий, ненульовий ідентифікатор інтервалу (
intervalID), який ідентифікує таймер, створений викликомsetInterval(). Це значення можна передати доclearInterval()для скасування інтервалу.Важливо зазначити, що
setInterval()таsetTimeout()використовують спільний пул ідентифікаторів, і технічноclearInterval()таclearTimeout()можна використовувати взаємозамінно. Однак для ясності слід завжди відповідати їх використанню, щоб уникнути плутанини при підтримці коду.Примітка: Аргумент затримки конвертується в 32-бітне ціле число зі знаком. Це ефективно обмежує затримку до 2147483647 мс, оскільки вона вказана як ціле число із знаком в специфікації IDL.
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
1 |
1 |
1 |
4 |
12 |
| Переглядач | ||||
|---|---|---|---|---|
4.4 |
18 |
4 |
1 |
| Переглядач | ||
|---|---|---|
0.10.0 |
1.0 |
Приклади
У цьому прикладі ми використовуємо setTimeout() для встановлення таймера на 3 секунди. Після закінчення вказаного інтервалу викликається передана функція, яка виводить повідомлення в консоль. Це дозволяє вам відкладати виконання певного коду на певний проміжок часу.
// Установка таймера на 3 секунди
let delayInMilliseconds = 3000; // затримка у мілісекундах (3 секунди)
setTimeout(() => {
console.log("Пройшло 3 секунди!");
}, delayInMilliseconds);
У цьому прикладі ми використовуємо setTimeout() для симуляції асинхронного виконання завдань. Функція asyncTask приймає ім'я завдання та колбек-функцію. Завдання виводиться в консоль, а після імітації тривалості викликається колбек-функція. Це дозволяє ефективно управляти асинхронним виконанням коду та викликати функції після завершення певних операцій.
// Симуляція асинхронного виконання завдань з використанням setTimeout()
function asyncTask(taskName, callback) {
console.log(`Виконується завдання: ${taskName}`);
setTimeout(() => {
console.log(`Завдання "${taskName}" виконано.`);
callback(); // виклик колбек-функції після завершення завдання
}, 2000); // симуляція тривалості завдання у 2 секунди
}
// Виклик асинхронного завдання
asyncTask("Завдання 1", () => {
console.log("Всі завдання виконано!");
});
Цей код демонструє використання глобальної функції setInterval() у мові програмування JavaScript для створення динамічного лічильника. У верхній частині сторінки вказано заголовок та короткий опис методу. В області результату виводиться лічильник, який збільшується кожною секундою після натискання кнопки "Старт". За допомогою кнопки "Стоп" можна зупинити інтервал та отримати відповідне повідомлення про зупинку. Взаємодія з цими кнопками дозволяє користувачеві контролювати виконання інтервальної функції.
