捕获setTimeout的tick

时间:2015-08-22 18:33:39

标签: javascript

是否有可能在setTimeout中捕获每秒的刻度。假设我需要在5秒后注销用户,并显示一条消息,比如div,说“你将在5秒后退出”。然后是4,3,2,1并在timeOut

之后注销

例如:

setTimeout(function(){
     $("#myDiv").text("you will be logged out in " + n + " seconds");
     //"n" being tick of each second.
},5000)

我在互联网上搜索了这个,但我无处可见。或者,对于这种情况,可以使用setInterval完成的任何事情也是很好的一点。有什么想法或亮点吗?

2 个答案:

答案 0 :(得分:4)

您可以将setIntervalclearInterval方法结合使用:

var n = 5;
var timeoutID = window.setInterval(function() {
    // this callback will execute every second until we call
    // the clearInterval method
    $('#myDiv').text('you will be logged out in ' + n + ' seconds');
    n--;
    if (n === 0) {
        // TODO: go ahead and really log the dude out

        window.clearTimeout(timeoutID);
    }
}, 1000);

答案 1 :(得分:0)

您可以拥有一个全局变量并使用它来显示勾选。如下所示

var counter = 5;
var timeInterval= setTimeout(function(){
  $("#myDiv").text("you will be logged out in " + n + " seconds");
   //"n" being tick of each second.
   counter = counter - 1;
   clearInterval(timeInterval) if(counter==0)
},1000)