循环不等待下一次重复之前的setInterval()

时间:2017-10-10 17:12:44

标签: javascript

我想要的是在setInterval()函数再次执行循环之前完成其工作之前进行循环等待。 但是循环似乎没有等待,并且setInterval()一直在等待它的时间。

<script>
var x=5;
while(x>0)
 {
    console.log("new loop..\n Left:"+x);
    x--;
    demo=3;
    start=setInterval(function(){
        if(demo<=0)
        clearInterval(start);
        else
        {
        demo--;
        console.log("time left for next loop:"+demo);
        }
    },1000);
}
</script>

现在看到这个之后,我知道延迟循环是不可能的。但任何能够实现我想要的东西的想法都会很明显。

NO JQUERY PLZ

1 个答案:

答案 0 :(得分:0)

我写评论但不能因为声誉低。 请完全重新考虑您的方法,并考虑setinterval调用嵌套函数async。 例如(未经测试,但也许你明白了)

<script>
var x =6;
function recursive(){
    x--;
    if (x==0){
        return; //end of program
    }
    start=setInterval(function(){
            if(demo<=0)
            {
                clearInterval(start);
                recursive();
            }
            else
            {
            demo--;
            console.log("time left for next loop:"+demo);
            }
        },1000);
}


</script>