Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何暂停javascript代码执行2秒_Javascript - Fatal编程技术网

如何暂停javascript代码执行2秒

如何暂停javascript代码执行2秒,javascript,Javascript,我想停止执行2秒钟。这也是,但现在遵循一个代码块: <html> <head> <title> HW 10.12 </title> <script type="text/javascript"> for (var i = 1; i <= 5; i++) { document.write(i); sleep(2); //for the

我想停止执行2秒钟。这也是,但现在遵循一个代码块:

<html>
   <head>
      <title> HW 10.12 </title>
      <script type="text/javascript">
         for (var i = 1; i <= 5; i++) {
             document.write(i);
             sleep(2); //for the first time loop is excute and sleep for 2 seconds        
         };
      </script>
   </head>
   <body></body>
</html>

HW 10.12

对于(var i=1;i您可以使用
setTimeout
来执行此操作

function myFunction() {
    // your code to run after the timeout
}

// stop for sometime if needed
setTimeout(myFunction, 2000);
没有(安全的)暂停执行的方法。但是,您可以使用以下方法执行类似的操作:

可能对你有帮助


每当我想在函数的中间休眠时,我就重构使用一个StimeTimeOut.(./P>< p>),没有办法像执行程序语言那样停止代码的执行。 您可以使用setTimeout和一些技巧来获得参数化超时:

for (var i = 1; i <= 5; i++) {
    var tick = function(i) {
        return function() {
            console.log(i);
        }
    };
    setTimeout(tick(i), 500 * i);
}

用于(var i=1;iJavascript是单线程的,因此本质上不应该有睡眠函数,因为睡眠会阻止线程。
setTimeout
是一种绕过此问题的方法,它将事件发布到队列中,稍后执行,而不阻止线程。但是如果您想要真正的睡眠函数,可以编写如下内容:

function sleep(miliseconds) {
   var currentTime = new Date().getTime();

   while (currentTime + miliseconds >= new Date().getTime()) {
   }
}

注意:不推荐使用上述代码。

for(var i=1;i为什么要暂停执行两秒或任意数秒?您可以编辑问题以修复源代码。这里的一个大错误是,您在真正想使用“睡眠”时使用了术语“停止”-这就是为什么这是一个重复的问题。对于那些真正想停下来的人来说,你最好的选择是一个反复运行直到达到延迟的步进器。我会发布代码,但这个答案是关闭的。为什么要文档。写()这会把事情搞砸的DOM@ManuViswam这不是我的文档。写,这是问题中的代码。不要这样!!!这会导致整个选项卡在这段时间内冻结(其他选项卡也会受到影响),因为CPU无限次执行
命令时,会导致冻结。请参阅实际示例-(测试您自己)@T.Todua:这就是为什么这篇文章不推荐它。这只是一个解决办法,以防人们想这样做。我想知道有多少人已经使用了这段代码,而没有看@T.Todua的评论。这对模拟一个非常繁忙的Web工作者很有用,所以我可以确认当工作者忙碌时消息是如何排队和处理的。例如,在调试mocha测试时引入临时延迟仍然很有用。为什么要将myFunction作为回调传递?@VSO语法不正确。
setTimeout
必须在
{
之后才能起作用。
function sleep(miliseconds) {
   var currentTime = new Date().getTime();

   while (currentTime + miliseconds >= new Date().getTime()) {
   }
}