Я думаю, что вы ищете способ приостановить выполнение кода до истечения времени ожидания.Многие программисты-любители желают такой конструкции, но ее нет в JavaScript.Это не нужно.Для всех целей в JavaScript setTimeout
и setInterval
являются идеальными подходящими решениями.
Однако JavaScript - мощный язык.Вы можете создать свою собственную конструкцию для решения этой проблемы.Взгляните на сообщение в блоге Нила Микс .С его подходом вы можете создать функцию сна, которая будет использоваться по следующим направлениям (обратите внимание, что в настоящее время только Firefox поддерживает JavaScript 1.7):
function mainGeneratorFunction() {
functionToRunFirst();
yield sleep(2000);
//rest of the code
}
Однако, для других браузеров не отчаивайтесь.Вы можете использовать хак, известный как XHR Sleeping
.При таком подходе вы просто используете синхронный XMLHttpRequest
для вызова сценария на стороне сервера, такого как php, который затем спит в течение указанного времени и возвращается после его пробуждения.Код JavaScript выглядит следующим образом:
function sleep(microseconds) {
var request = new XMLHttpRequest();
request.open("GET", "sleep.php?time=" + microseconds, false);
request.send();
}
functionToRunFirst();
sleep(2000000);
//rest of the code
Функция php sleep выглядит следующим образом:
<?php
usleep($_GET["time"]);
?>