首页 > Web开发 > 详细

JS 循环定时的一些思考

时间:2019-03-06 13:15:15      阅读:153      评论:0      收藏:0      [点我收藏+]

网上也有例子,

 

 

function doSetTimeout(i) {
  setTimeout(function() { console.log(i); }, 1000);
}

for (var i = 1; i <= 8; ++i)
  doSetTimeout(i);

技术分享图片

1到8 是几乎同时输出的,

 

setTimeout(getResult,1000);//定时获取短信内容
function getResult(){ 
console.log("aa");
setTimeout(getResult,1000);
}

上面可以定时,一秒秒输出,如何要控制次数,可以加个变量

 var i=0; 
 var dotimes =4;
setTimeout(getResult,1000);
function getResult(){ 
i++;
console.log(i);
if(i<dotimes){
setTimeout(getResult,1000);
}
}

但是上面的代码有个很奇怪的现象

技术分享图片

为什么不是预想那样 一开始就输出1呢,把i++ 换成 i=i+1;也是一样。var 缓存let也一样,后来问人,其实那个2 和6不是程序输出的,是调用

setTimeout的返回值,控制台也默认输出了,和程序无关,下方将函数赋值给一个 a,就不输出来了。
var  i=0; 
var dotimes =4;
var a=setTimeout(getResult,1000);
function getResult(){ 
i=i+1;
console.log(i);
if(i<dotimes){
setTimeout(getResult,1000);
}
}

 

JS 循环定时的一些思考

原文:https://www.cnblogs.com/rogge7/p/10482463.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!