settimeout如何实现 和interval一样的效果

settimeout如何实现 和interval一样的效果

阅读 2.4k
2 个回答

可以利用递归方法实现interval的效果,如下:

var c=0
var t
function timedCount()
{
document.getElementById('txt').value=c
c=c+1
t=setTimeout("timedCount()",1000)
}

//但是要注意它的倒计时没有interval计时准确!

var getCount = function(doSth, interval) {
    var timer = 0,
        doSth = doSth,
        interval = interval || 1000;

    var run = function() {
        doSth();
        timer = setTimeout(run, interval);
    };

    return {
        run: run,
        stop: function() {
            timer && clearTimeout(timer);
        }
    };
}


var num = 0;
var doSth = function() {
    console.log(num);
};

var count = getCount(doSth, 500);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题