JavaScript setTimeout() — виконати код із затримкою
Метод setTimeout() виконує функцію один раз через заданий час у мілісекундах.
Загальний опис
Затримка тут — це мінімум, а не обіцянка. setTimeout(fn, 100) означає «не раніше, ніж за 100 мс»: якщо в цю мить головний потік зайнятий важким циклом, функція почекає, доки він звільниться.
Повертає числовий ідентифікатор — його треба зберегти, якщо колись захочеш скасувати виклик через clearTimeout().
Навіть setTimeout(fn, 0) не виконується миттєво: він відкладає функцію до кінця поточної роботи. Цим інколи користуються, щоб дати браузеру перемалювати сторінку перед важкою операцією.
- Нотатка
-
Усередині звичайної функції-обробника
автор: NagarDthisне той, на що ти чекаєш — у нестрогому режимі цеwindow. Стрілкова функція цю пастку знімає: вонаthisне має власного взагалі.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| setTimeout | 1+ | 1+ | 1+ | 3+ | 12+ | 5+ |
| Переглядач | ||||
|---|---|---|---|---|
| setTimeout | yes | yes | yes | yes |
Приклади
+ запропонувати свій приклад у пісочниці
Затримка, скасування й типова пастка з this.
// зберігаємо id, щоб мати змогу скасувати
const id = setTimeout(() => {
console.log('Минула секунда');
}, 1000);
// передумали
clearTimeout(id);
// аргументи — третім і далі
setTimeout((name) => console.log('Привіт,', name), 500, 'Іване');
// затримка — це МІНІМУМ: цикл нижче відсуне виклик
setTimeout(() => console.log('другий'), 0);
console.log('перший'); // виведеться раніше
Коментарі
Коментарів ще немає — будьте першим!