JavaScript中setTimeout实现轮询 (vs setInterval)

setTimeout(表达式,延时时间)在执行时,是在载入后延迟指定时间后,去执行一次表达式,次数是一次。
setInterval(表达式,交互时间)则不一样,它从载入后,每隔指定的时间就执行一次表达式。

如果指定循环次数,每次间隔一定时间,可以用setTimeout

 1: function f(){
 2: //Do something here...
 3: }; 
 4:  
 5: for(var i = 1; i < 13; i++){
 6: setTimeout(f, 1000);
 7: } 
 8:  

如果希望每隔指定的时间就执行一次表达式,但无限制循环 - 轮询(直到某个条件满足,跳出)。可以在表达式内再次触发setTimeout从而形成周而复始的定时效果。

 1: function f(){
 2: if(myCondition) //跳出循环的条件
 3: {
 4: //Do something here...
 5: setTimeout(f, 1000); //循环调用触发setTimeout
 6: }; 
 7:  
 8: setTimeout(f, 1000);

或许您对以下相关文章有兴趣:

原文地址:https://www.cnblogs.com/Mainz/p/1444691.html