这两个代码块之间关于setTimeout问题的区别

我在这里有两个代码块:

区块1:

setTimeout(function(){  
    func1();
    setTimeout(function(){ 
        func2(); 
    },500);
},500);

区块2:

setTimeout(function(){  
    func1();
},500);  
setTimeout(function(){  
    func2();
},1000);

这两个块有什么区别?(不仅是结果,而且还有执行过程)

古法

只有细微的差异。总体来说,您通常不会注意到任何差异。


在第一个代码块中,第二个计时器在func1运行启动,因此计时取决于运行所需的时间。如果您这样编写代码块1,则代码块的行为会更加相似:

setTimeout(function(){  
    setTimeout(function(){ 
        func2(); 
    },500);
    func1();
},500);

但是,时间安排上仍然会稍有不同。如果在触发计时器时浏览器正忙于运行某些代码,则回调的执行将被延迟,直到该代码完成为止。第一个计时器的任何延迟都会影响第二个计时器的启动时间。


另一个区别是您是否要停止计时器。在第1块中,第二个计时器取决于第一个计时器,因此您无法独立停止它们。停止第一个计时器也会停止第二个计时器,并且只有第一个计时器完成后才能停止第二个计时器。

使用块2,您可以随时独立停止任一计时器。setTimeout方法返回一个句柄,如果要停止它,则使用该句柄:

var handle1 = setTimeout(function(){  
    func1();
},500);  
var handle2 = setTimeout(function(){  
    func2();
},1000);

然后,您可以使用clearTimeout(handle1)clearTimeout(handle2)停止任一计时器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

这两个代码块之间关于setTimeout问题的区别

来自分类Dev

这两个代码之间的区别?

来自分类Dev

这两个代码之间的区别?

来自分类Dev

这两个代码块有什么区别?

来自分类Dev

这两个代码块之间的差异

来自分类Dev

这两个DefaultListCellRenderer之间的区别?

来自分类Dev

这两个DefaultListCellRenderer之间的区别?

来自分类Dev

这两个javascript代码的区别

来自分类Dev

这两个if块之间在逻辑上有区别吗?

来自分类Dev

d3.js中这两个代码块有什么区别

来自分类Dev

Ruby:这两个代码块有什么区别?

来自分类Dev

从内存消耗的角度来看,这两个代码块有什么区别

来自分类Dev

这两个代码委派示例之间有什么区别

来自分类Dev

这两个Java代码快照之间有什么区别?

来自分类Dev

这两个Angular代码段之间有什么区别?

来自分类Dev

谁能说出C中这两个代码段之间的区别?

来自分类Dev

这两个代码委派示例之间有什么区别

来自分类Dev

这两个代码段之间是否有真正的区别?

来自分类Dev

这两个代码之间有什么区别吗?

来自分类Dev

这两个Clojure函数之间有什么区别和问题?

来自分类Dev

这两个Clojure函数之间有什么区别和问题?

来自分类Dev

这两个异步实现之间的区别

来自分类Dev

这两个JavaScript语句之间有何区别?

来自分类Dev

这两个if之间有什么区别?

来自分类Dev

这两个if()语句之间有什么实际区别?

来自分类Dev

了解这两个装饰器之间的区别

来自分类Dev

这两个语句之间有什么区别?

来自分类Dev

C中这两个结构声明之间的区别

来自分类Dev

这两个SQL查询节点JS之间的区别

Related 相关文章

热门标签

归档