Есть ли функция сна в 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);
}
Этот код блокируется на указанную продолжительность. Это код загрузки процессора. Это отличается от потока, блокирующего самого себя и освобождающего циклы ЦП для использования другим потоком. Здесь такого не происходит. Не используйте этот код, это очень плохая идея.