'setInterval' против 'setTimeout'

В чем основное отличие между

setInterval

и

setTimeout

в JavaScript?

Ответ 1

setTimeout(expression, timeout); запускает код/​​функцию один раз после таймаута.

setInterval(expression, timeout); запускает код/​​функцию в интервалах с длиной таймаута между ними.

Пример:

var intervalID = setInterval(alert, 1000); // Will alert every second.
// clearInterval(intervalID); // Will clear the timer.

setTimeout(alert, 1000); // Will alert once, after a second.

Ответ 2

setInterval срабатывает снова и снова в интервалах, а setTimeout срабатывает только один раз.

См. ссылка в MDN.

Ответ 3

SetTimeout():

Это функция, выполняющая оператор JavaScript AFTER x.

setTimeout(function () {
    something();
}, 1000); // Execute something() 1 second later.

setInterval():

Это функция, выполняющая оператор JavaScript EVERY x interval.

setInterval(function () {
    somethingElse();
}, 2000); // Execute somethingElse() every 2 seconds.

Единица интервала находится в millisecond для обеих функций.

Ответ 4

setInterval повторяет вызов, setTimeout запускает его только один раз.

Ответ 5

setInterval()

setInterval - это метод выполнения кода на основе временного интервала, который имеет нативную способность многократно запускать указанный script, когда интервал будет достигнут. Он не должен быть вложен в свою функцию обратного вызова автором script, чтобы сделать его loop, поскольку он по умолчанию по умолчанию. Он будет продолжать стрельбу с интервалом, если вы не назовете clearInterval().

если вы хотите создать код цикла для анимации или часов Затем используйте setInterval.

function doStuff() {
alert("run your code here when time interval is reached");
}
var myTimer = setInterval(doStuff, 5000);

SetTimeout()

setTimeout - это метод выполнения кода, основанный на времени, который будет выполнять script только один раз, когда этот интервал будет достигнут, а не повторится снова, если вы не зацикливаете его на цикл script, вставив объект setTimeout внутри функции it вызовы для запуска. Если он привязан к циклу, он будет продолжать стрелять с интервалом, если вы не вызываете clearTimeout().

function doStuff() {
alert("run your code here when time interval is reached");
}
var myTimer = setTimeout(doStuff, 5000);

если вы хотите, чтобы что-то произошло через несколько секунд Затем используйте setTimeout... потому что он выполняется только один раз, когда достигается интервал.