Javascript延迟
我知道Javascript没有延迟(500)方法,该方法会将执行延迟500毫秒,所以我一直试图通过使用setTimeout和setInterval来解决这个问题Javascript延迟,javascript,browser,delay,settimeout,setinterval,Javascript,Browser,Delay,Settimeout,Setinterval,我知道Javascript没有延迟(500)方法,该方法会将执行延迟500毫秒,所以我一直试图通过使用setTimeout和setInterval来解决这个问题 for(var i =0; i< 10; i++){ /* Animation Code */ var doNothing = function(){var m =5;} setTimeout(doNothing, 50); } for(变量i=0;i
for(var i =0; i< 10; i++){
/* Animation Code */
var doNothing = function(){var m =5;}
setTimeout(doNothing, 50);
}
for(变量i=0;i<10;i++){
/*动画代码*/
var doNothing=function(){var m=5;}
设置超时时间(不设置,50);
}
然而,这似乎不起作用。基本上,我想要一些代码,停止执行n毫秒,然后继续执行。实际上,你不能这样做。处理它并找到一种基于回调的方法。通常这意味着将延迟之后应该发生的所有事情都放在回调本身中 例如,您不能这样做以使
baz
等待:
foo();
setTimeout(function() {
bar();
}, 500);
baz();
所以你只能做你能做的事情:
foo();
setTimeout(function() {
bar();
baz();
}, 500);
实际上,你不能这么做。处理它并找到一种基于回调的方法。通常这意味着将延迟之后应该发生的所有事情都放在回调本身中 例如,您不能这样做以使
baz
等待:
foo();
setTimeout(function() {
bar();
}, 500);
baz();
所以你只能做你能做的事情:
foo();
setTimeout(function() {
bar();
baz();
}, 500);
setInterval()
-以指定的时间间隔反复执行函数
要以字符串形式传递函数,请确保在函数名后面加上括号。
setInterval(“someFunction()”,5000)
传递函数指针时,不要包含括号。
设置间隔(someFunction,5000)
var timer_id=设置间隔(不超过500)
如果你想停止执行
将计时器\u id
变量设为全局变量
清除间隔(计时器\u id)
setInterval()
-以指定的时间间隔反复执行函数
要以字符串形式传递函数,请确保在函数名后面加上括号。
setInterval(“someFunction()”,5000)
传递函数指针时,不要包含括号。
设置间隔(someFunction,5000)
var timer_id=设置间隔(不超过500)
如果你想停止执行
将计时器\u id
变量设为全局变量
清除间隔(计时器\u id)
setInterval()方法等待指定的毫秒数,然后执行指定的函数,它将继续执行该函数,每个给定的时间间隔执行一次。语法
window.setInterval("javascript function",milliseconds);
可以在不使用窗口前缀的情况下编写window.setInterval()方法
setInterval()的第一个参数应该是函数。
如何停止执行?
clearInterval()方法用于停止进一步执行setInterval()方法中指定的函数。
语法
window.clearInterval(intervalVariable)
window.clearInterval()
方法可以在不使用窗口前缀的情况下编写
为了能够使用clearInterval()
方法,在创建interval方法时必须使用全局变量:
myVar=setInterval("javascript function",milliseconds);
然后,您可以通过调用clearInterval()
方法来停止执行。setInterval()方法等待指定的毫秒数,然后执行指定的函数,它将继续执行该函数,每个给定的时间间隔执行一次。
语法
window.setInterval("javascript function",milliseconds);
可以在不使用窗口前缀的情况下编写window.setInterval()方法
setInterval()的第一个参数应该是函数。
如何停止执行?
clearInterval()方法用于停止进一步执行setInterval()方法中指定的函数。
语法
window.clearInterval(intervalVariable)
window.clearInterval()
方法可以在不使用窗口前缀的情况下编写
为了能够使用clearInterval()
方法,在创建interval方法时必须使用全局变量:
myVar=setInterval("javascript function",milliseconds);
然后,您可以通过调用clearInterval()
方法来停止执行。如果您来自语言/框架/API背景,您可以使用类似的东西暂停执行,或者使用类似的东西同步处理用户输入,那么它在JavaScript中不起作用 没有办法用这样的东西阻止JavaScript事件循环,原因很好:UI响应。在JavaScript中,一切都是异步的。您可以使用
setTimeout
在计时器事件发生时执行某些操作,但用户仍然可以在计时器事件之间访问UI,甚至可以从页面中导航
为了处理代码片段,您需要的是一个异步状态机。它允许在停止/继续之间保留代码的状态(在您的情况下,这是动画的状态,尽管i
变量也是其中的一部分):
(函数()
{
var i=0;
var nextStep=函数()
{
如果(i如果您来自language/framework/API背景,您可以使用类似的东西暂停执行,或者使用类似的东西同步处理用户输入,那么它在JavaScript中无法工作
你不可能用这样的东西来阻止JavaScript事件循环,原因很好:UI响应。在JavaScript中,一切都是异步的。你可以使用setTimeout
在计时器事件上做一些事情,但用户仍然能够在计时器事件之间访问UI,甚至可以离开页面
为了处理代码片段,您正在寻找的称为异步状态机。它允许在停止/继续之间保留代码的状态(在您的情况下,这是动画的状态,尽管i
变量也是其中的一部分):
(函数()
{
var i=0;
var nextStep=函数()
{
if(i如果使用RxJS,那么代码将更加清晰可读