2017-10-10 68 views
-1

我想要的是在setInterval()函數再次執行下一次循環之前執行其作業之前等待循環。 但循環似乎並沒有等待,並且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

+0

你的問題是什麼你的意思是停止循環不possible..break和while循環 –

+0

@Carcigenicate,我明白了什麼異步和同步方式回報應該停止但我不能真正弄清楚你的意思是'和它一起工作'。請澄清一下 –

+0

@Carcigenicate,我究竟做了什麼與我所要求的不同。我會在這裏得到答案只是給我一個什麼方法,我可以在該應用程序中使用的提示。所有我喜歡的答案是jquery,但我現在不舒服..我只是堅持JS –

回答

0

我會寫一個評論,但可以低信譽的不是因爲。 請重新考慮你的方法,並考慮setinterval調用嵌套函數異步。 例如(未測試,但也許你的想法)

<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> 
+0

答案沒有直接幫助我,但最終我做了我想要改變的想法在我的腦海裏..thnks很多 –

相關問題