Ми можемо вирішити виконати функцію не зараз, а через певний час пізніше. Це називається “планування виклику”.
Для цього існує два методи:
setTimeoutдозволяє нам запускати функцію один раз через певний інтервал часу.setIntervalдозволяє нам запускати функцію багаторазово, починаючи через певний інтервал часу, а потім постійно повторюючи у цьому інтервалі.
Ці методи не є частиною специфікації JavaScript. Але більшість середовищ виконання JS-коду мають внутрішній планувальник і надають ці методи. Зокрема, вони підтримуються у всіх браузерах та Node.js.
setTimeout
Синтаксис:
let timerId = setTimeout(func|code, [delay], [arg1], [arg2], ...)
Параметри:
func|code- Функція або рядок з текстом коду для виконання. Зазвичай це функція. З історичних причин можна передати рядок з текстом коду, але це не рекомендується.
delay- Затримка перед запуском, у мілісекундах (1000 мс = 1 секунда), типове значення – 0.
arg1,arg2…- Аргументи, які передаються у функцію
Наприклад, цей код викликає sayHi() через одну секунду:
function sayHi() {
alert('Привіт');
}
setTimeout(sayHi, 1000);
З аргументами:
function sayHi(phrase, who) {
alert( phrase + ', ' + who );
}
setTimeout(sayHi, 1000, "Привіт", "Джон"); // Привіт, Джон
Якщо перший аргумент – це рядок, то JavaScript створює з нього функцію.
Отже, це також буде працювати:
setTimeout("alert('Привіт')", 1000);
Але використання рядків не рекомендується, використовуйте замість них стрілкові функції, наприклад:
setTimeout(() => alert('Привіт'), 1000);