[問題] setTimeout的迴圈

看板Ajax作者 (da5f)時間6年前 (2018/04/09 19:06), 6年前編輯推噓1(109)
留言10則, 4人參與, 6年前最新討論串1/1
不好意思打擾到大家 最近在學習js上遇到了問題 希望有版友能幫我解惑qq 這是codepen程式碼 http://t.cn/RmIhfxK 我使用陣列進入迴圈跑判斷 在使用setTimeout設定延遲 一開始我使用var 出現undefined 後來查資料去了解 因為使用var 迴圈會先跑完才去執行(我不確定我這樣理解有沒有誤) 我找到2個解決方法 1個是使用closure 2是使用let 我使用let之後不會出現undefined了 但卻沒有延遲…會同時執行 想詢問原因與解決方法 非常感謝大家的幫忙 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.9.0.29 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1523271975.A.D89.html

04/09 22:00, 6年前 , 1F
就 for 迴圈內部而言,var i 是同變數,let i 則各次獨立
04/09 22:00, 1F

04/09 22:00, 6年前 , 2F
所以 var i 迴圈跑完早就變成 5 了,接著 timeout 才觸發
04/09 22:00, 2F

04/10 00:45, 6年前 , 3F
你let的setTimeout第一個參數不是function
04/10 00:45, 3F

04/10 02:38, 6年前 , 4F
謝謝m大和k大~ 想詢問k大 意思是我的setTimeout的fun
04/10 02:38, 4F

04/10 02:38, 6年前 , 5F
ction需要另外寫嗎?
04/10 02:38, 5F

04/10 07:02, 6年前 , 6F
kolz 說的是 setTimeout(console.log("1"), time2); 不對
04/10 07:02, 6F

04/10 07:05, 6年前 , 7F
應要 setTimeout(function(){console.log("1");},time2);
04/10 07:05, 7F

04/10 07:07, 6年前 , 8F
或者至少也要是 setTimeout('console.log("1")', time2);
04/10 07:07, 8F

04/10 10:52, 6年前 , 9F
好的 非常謝謝L大
04/10 10:52, 9F

04/10 10:55, 6年前 , 10F
喔喔!! 我成功了 謝謝大家的幫忙 非常感謝
04/10 10:55, 10F
※ 編輯: yuoo1580 (101.9.0.29), 04/10/2018 10:57:32
文章代碼(AID): #1Qoqads9 (Ajax)
文章代碼(AID): #1Qoqads9 (Ajax)