59 lines
2.3 KiB
Markdown
59 lines
2.3 KiB
Markdown
|
---
|
|||
|
title: Window setTimeout Method
|
|||
|
localeTitle: Метод windowTimeout
|
|||
|
---
|
|||
|
## Метод windowTimeout
|
|||
|
|
|||
|
Метод `setTimeout()` вызывает функцию или вычисляет выражение после заданного количества миллисекунд.
|
|||
|
|
|||
|
Советы:
|
|||
|
|
|||
|
* 1000 мс = 1 секунда.
|
|||
|
* Функция выполняется только один раз. Если вам нужно повторить выполнение, используйте метод `setInterval()` .
|
|||
|
* Используйте метод `clearTimeout()` чтобы предотвратить запуск функции.
|
|||
|
|
|||
|
Синтаксис метода `setTimout()` следующий:
|
|||
|
|
|||
|
```js
|
|||
|
setTimeout(function, milliseconds, param1, param2, ...);
|
|||
|
```
|
|||
|
|
|||
|
Например:
|
|||
|
|
|||
|
```js
|
|||
|
setTimeout(function(){ alert("Hello"); }, 3000);
|
|||
|
```
|
|||
|
|
|||
|
Очень важная вещь в `setTimeout()` заключается в том, что она будет выполняться асинхронно. Приведем пример:
|
|||
|
|
|||
|
```js
|
|||
|
console.log("A");
|
|||
|
setTimeout(function(){ console.log("B"); }, 0);
|
|||
|
console.log("C");
|
|||
|
// The order in the console will be
|
|||
|
// A
|
|||
|
// C
|
|||
|
// B
|
|||
|
```
|
|||
|
|
|||
|
**Не так, как обострилось! Но мы указываем только 0 секунд !!!** Чтобы решить эту проблему и убедиться, что наш код будет выполняться синхронно, нам нужно просто вставить последнюю консоль в функцию
|
|||
|
|
|||
|
```js
|
|||
|
console.log("A");
|
|||
|
setTimeout(function() {
|
|||
|
console.log("B");
|
|||
|
console.log("C");
|
|||
|
}, 0);
|
|||
|
// The order in the console will be
|
|||
|
// A
|
|||
|
// B
|
|||
|
// C
|
|||
|
```
|
|||
|
|
|||
|
#### Дополнительная информация:
|
|||
|
|
|||
|
Документация: [MDN](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout)
|
|||
|
|
|||
|
Дополнительные примеры функции setTimeout: [w3schools](https://www.w3schools.com/jsref/met_win_settimeout.asp)
|
|||
|
|
|||
|
Чтобы понять, что на самом деле происходит под капотом, просто смотрите это потрясающее видео [Филипп Робертс: Какая черта - цикл событий? | ОАО «Союз 2014»](https://www.youtube.com/watch?v=8aGhZQkoFbQ)
|