作者yuoo1580 (da5f)
看板Ajax
標題[問題] setTimeout的迴圈
時間Mon Apr 9 19:06:12 2018
不好意思打擾到大家
最近在學習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://webptt.com/m.aspx?n=bbs/Ajax/M.1523271975.A.D89.html
1F:→ MangoTW: 就 for 迴圈內部而言,var i 是同變數,let i 則各次獨立04/09 22:00
2F:→ MangoTW: 所以 var i 迴圈跑完早就變成 5 了,接著 timeout 才觸發04/09 22:00
3F:→ kolz: 你let的setTimeout第一個參數不是function04/10 00:45
4F:→ yuoo1580: 謝謝m大和k大~ 想詢問k大 意思是我的setTimeout的fun04/10 02:38
5F:→ yuoo1580: ction需要另外寫嗎?04/10 02:38
6F:推 LPH66: kolz 說的是 setTimeout(console.log("1"), time2); 不對04/10 07:02
7F:→ LPH66: 應要 setTimeout(function(){console.log("1");},time2);04/10 07:05
8F:→ LPH66: 或者至少也要是 setTimeout('console.log("1")', time2);04/10 07:07
9F:→ yuoo1580: 好的 非常謝謝L大04/10 10:52
10F:→ yuoo1580: 喔喔!! 我成功了 謝謝大家的幫忙 非常感謝04/10 10:55
※ 編輯: yuoo1580 (101.9.0.29), 04/10/2018 10:57:32