亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript:超時循環

JavaScript:超時循環

慕容708150 2019-11-18 18:33:06
我希望我的for循環不應該一次執行,而是在每次迭代后等待超時。例如:for(var i=0; i<10; i++) {    console.log(i);    //wait for 1000}我發現了很多關于堆棧溢出的解決方案,例如:for (var i=0;i<=10;i++) {   (function(ind) {       setTimeout(function(){console.log(ind);}, 3000);   })(i);}但是在所有實現中,循環最初等待3000毫秒,然后立即執行整個for循環。有沒有一種方法可以等待1000毫秒后調用每次迭代。
查看完整描述

3 回答

?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

不要在loops中創建函數,而是:


(function fiveSeconds  (n) {


  if (n < 5) setTimeout(function () {  

    fiveSeconds ( n ); // Redo if n < 5 (and pass n)

  }, 1000);

  

  console.log( n++ );


} (0)); // Initialize. n is 0

上面的代碼將以1秒的間隔記錄從0-5的十個數字。


現代瀏覽器(和IE10 +)

(function fiveSeconds (n) {


  console.log( n++ );


  if (n <= 5) setTimeout( fiveSeconds, 1000, n ); // Redo if n <= 5 (and pass n)

  

} (0)); // Initialize. n is 0


查看完整回答
反對 回復 2019-11-18
?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

為什么不使用這樣的東西:


var i = 0

var id = window.setInterval(function(){

    if(i >= 10) {

        clearInterval(id);

        return;

    }


    console.log(i);

    i++;

}, 1000)


查看完整回答
反對 回復 2019-11-18
  • 3 回答
  • 0 關注
  • 445 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號