2013-07-14 82 views
3

增加延遲在JavaScript中如何添加延遲到JavaScript的循環 在這下面的代碼在JavaScript中如何循環

snakeclass.prototype.start = function() { 
    while(1){ 
     if(this.collision()){ 
      console.log("game over"); 
      break; 
     } 

     this.movesnake(); 

     // delay here by 300 miliseconds 
    } 
}; 

我怎樣才能在這裏使用設置超時功能;

+0

你的意思是延遲整個while循環嗎? – Shawn31313

+0

@ Shawn31313 yess – qwerty

+0

http://stackoverflow.com/questions/24849/is-there-some-way-to-introduce-a-delay-in-javascript – 2013-07-14 22:06:19

回答

5

這是行不通的。如果你這樣做,你的瀏覽器就會凍結:

while (1) {} 

然而你可以使用setInterval。

snakeclass.prototype.start = function() { 
    var interval; 
    var doo = function() { 
     if(this.collision()){ 
      console.log("game over"); 
      clearInterval(interval); 
     } 
     this.movesnake(); 
    }.bind(this); // bind this so it can be accessed again inside the function 
    doo(); 
    timeout = setInterval(doo, 300); 
}; 
+0

投票不起作用 – qwerty

+0

嗯,請嘗試刷新頁面。 – Shawn31313

+0

沒有足夠的代表 感謝您的回答 – qwerty