<address id="ttjl9"></address>

      <noframes id="ttjl9"><address id="ttjl9"><nobr id="ttjl9"></nobr></address>
      <form id="ttjl9"></form>
        <em id="ttjl9"><span id="ttjl9"></span></em>
        <address id="ttjl9"></address>

          <noframes id="ttjl9"><form id="ttjl9"></form>

          for循環包裹setTimeout計時器

          2019-7-19    seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          for(var i = 0; i < 5; i++) {
          console.log(i)
          }

          這樣for循環可打印出 0 - 4的結果

          for(var i = 0; i < 5; i++) {
              setTimeout(function() {
          console.log(i)
              }, i * 1000)
          }

          但這樣只能間隔一秒打印出5個5

          原因在于 setTimeout是異步,等for循環全部完成 i 后才會執行

          解決方法可以將 for循環中的var 變成 let

          let只作用于for循環內,這樣每次付給setTimeout的值都是當前值

          或者在setTimeout外再包一層function

          for(var i = 0; i < 5; i++) {
              (function(i) {setTimeout(function() {
          console.log(i)
              }, i * 1000)})(i)

          }

          將 i 作為參數傳到setTimeout中運行 這樣就可以得到每隔1秒加1的log結果了
          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、網站建設 、平面設計服務。

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.syprn.cn

          存檔

          亚洲va欧美va天堂v国产综合