如何暂停JavaScript代码caching2秒
我想停止执行2秒钟。 那么是这样,但是现在是一个代码块:HW 10.12
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>
第一次循环执行并hibernate2秒钟。 我想停止执行两秒钟?
Javascript是单线程的,所以本质上不应该有睡眠function,因为睡眠会阻塞线程。 setTimeout
是一种通过将事件发送到队列稍后执行而不阻塞线程来解决此问题的方法。 但是如果你想要一个真正的睡眠function,你可以写这样的东西:
function sleep(miliseconds) { var currentTime = new Date().getTime(); while (currentTime + miliseconds >= new Date().getTime()) { } }
没有(安全)的方式来暂停执行。 但是,你可以使用setTimeout来做这样的事情:
function writeNext(i) { document.write(i); if(i == 5) return; setTimeout(function() { writeNext(i + 1); }, 2000); } writeNext(1);
你可以使用setTimeout
来做到这一点
function myFunction() { // your code // stop for sometime if needed setTimeout(myFunction, 5000); }
此链接可能对您有所帮助。
每次我在我的函数中想要一个睡眠,我重构使用setTimeout()。
与过程语言一样,没有办法停止执行代码。 你可以使用setTimeout和一些欺骗来获得参数化超时:
for (var i = 1; i <= 5; i++) { var tick = function(i) { return function() { console.log(i); } }; setTimeout(tick(i), 500 * i); }
在这里演示: http : //jsfiddle.net/hW7Ch/