setTimeout() и setInterval() в javascript

Как мы уже говорили, функция setTimeout() запускает свой таймер, переходит в очередь задач и ждет, пока стек вызовов не опустеет. Все это является частью работы цикла событий.

setTimeout()

Пример кода:

function sayHi() {
  alert('Hello');
}

setTimeout(sayHi, 10000);
Вход в полноэкранный режим Выход из полноэкранного режима

Здесь функция sayHi выполняется после задержки в 10000 мс.

setTimeout() не обязательно выполнит функцию обратного вызова точно через установленное время.

Поскольку она ждет, пока стек вызовов опустеет, может случиться так, что таймер уже истек во время ожидания, что означает, что она выполнится через некоторое время, а не через указанное время.

Следовательно,


function sayHi() {
  alert('Hello');
}

setTimeout(sayHi, 0);
.
.
.
Войти в полноэкранный режим Выход из полноэкранного режима

Даже здесь он будет ждать, пока вся программа не будет выполнена и стек вызовов не опустеет.

Оставаясь в очереди задач, он избегает блокировки потоков. Итак:

  • Он ждет не менее указанного времени для выполнения обратного вызова.
  • Он не блокирует основной поток.

setInterval()

Продолжает выполнять функцию обратного вызова через заданный интервал времени, пока не остановится.

let timerId = setInterval(() => console.log('attention'), 2000);

setTimeout(() => { clearInterval(timerId); console.log('stop'); }, 5000);
Вход в полноэкранный режим Выход из полноэкранного режима

Здесь «внимание» печатается через каждые 2 секунды и очищается с помощью clearInterval() ниже через 5 секунд, когда печатается стоп.

Узнайте больше о параллелизме в javascript и о том, как можно использовать setTimeout(0).
🌟setTimeout() by Akshay Saini

Оцените статью
devanswers.ru
Добавить комментарий