Есть ли функция сна в JavaScript?
Есть функция сна в JavaScript?
Ответ 1
Вы можете использовать функции setTimeout
или setInterval
.
Ответ 2
Если вы хотите заблокировать выполнение кода с вызовом sleep
, то нет, для этого не существует метода JavaScript
.
JavaScript
имеет метод setTimeout
. setTimeout
позволит вам отложить выполнение функции за миллисекунды.
setTimeout(myFunction, 3000);
// if you have defined a function named myFunction
// it will run after 3 seconds (3000 milliseconds)
Помните, что это полностью отличается от того, как будет вести себя метод sleep
, если он существовал.
function test1()
{
// let say JavaScript did have a sleep function..
// sleep for 3 seconds
sleep(3000);
alert('hi');
}
Если вы запустите указанную выше функцию, вам нужно будет ждать 3 секунды (sleep
вызов метода блокируется), прежде чем вы увидите предупреждение "привет" . К сожалению, в JavaScript
нет функции sleep
.
function test2()
{
// defer the execution of anonymous function for
// 3 seconds and go to next line of code.
setTimeout(function(){
alert('hello');
}, 3000);
alert('hi');
}
Если вы запустите test2, вы сразу увидите "привет" (setTimeout
не блокируется), и через 3 секунды вы увидите предупреждение "привет" .
Ответ 3
Наивный, ресурсоемкий метод блокирования выполнения на несколько миллисекунд:
/**
* Delay for a number of milliseconds
*/
function sleep(delay) {
var start = new Date().getTime();
while (new Date().getTime() < start + delay);
}
Ответ 4
function sleep(delay) {
var start = new Date().getTime();
while (new Date().getTime() < start + delay);
}
Этот код блокируется на указанную продолжительность. Это код загрузки процессора. Это отличается от потока, блокирующего самого себя и освобождающего циклы ЦП для использования другим потоком. Здесь такого не происходит. Не используйте этот код, это очень плохая идея.