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

循环setTimeout最后一个元素的问题

循环setTimeout最后一个元素的问题

慕盖茨4494581 2018-10-11 13:17:47
我想循环一个定时器 从0到9,但是再次调用的时候9却和0同时出现我想知道怎么解决function move(){        for (var i = 0; i < 10; i++) {            setTimeout(function(i){                console.log(i);                if (i == 9) {                    i = 0;                    move()                }            },i*1000,i)        }    };    move();
查看完整描述

1 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

如果是 for 内使用 setTimeout 太浪费内存了。

我秀一个闭包的写法:

var move = function() {

    var digit, COUNT;


    function show() {

        console.log(digit);

        setTimeout(function() {

            ++digit;

            digit = digit >= COUNT ? 0 : digit;

            show();

        }, 1000);

    }

    return function(count) {

        COUNT = count;

        digit = 0;

        show();

    }

}()

move(10);


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

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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