为了账号安全,请及时绑定邮箱和手机立即绑定

js实现for循环1-10, 延迟500ms展示结果, 但结果总是错误的, 求办法

js实现for循环1-10, 延迟500ms展示结果, 但结果总是错误的, 求办法

30秒到达战场 2018-10-19 14:10:45
描述如题代码如下function test() {  for(var i=0; i<10; i++) {     setTimeout(function(){       (function (m) {        console.log(m);       })(i)     }, 500)   } } test();执行结果请教下解决办法, 并指出错误位置, 谢谢!
查看完整描述

1 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

直接在setTimeout()里用即时执行封装下回调就行了,你封包在setTimeout()的里边跟没封区别不大:

function test() {  for(var i=1; i<11; i++) {
    setTimeout((function(){        console.log(i);
    })(), 500)
  }
}
test();

补充:

如果想做成间隔500ms一次console.log,那我觉得不如直接写成:

var i = 1;var ii = setInterval(function(){
    if (i<11) {
        console.log(i);
        i++;
    } else {
        clearInterval(ii);
    }
}, 500);


查看完整回答
反对 回复 2018-11-18
  • 1 回答
  • 0 关注
  • 1159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号