Re: [問題] 如何在迴圈中延遲?
把你的函式改成一個遞迴函式呢?
像是
function someRecursive(cnt) {
/* do something */
if (cnt < 999) {
setTimeout(someRecursive(cnt + 1), 5000)
}
}
之類的
※ 引述《ggbast (GG)》之銘言:
: 最近剛踏入javascript的領域
: 我想在一個迴圈中重複執行某一個function
: 這個function是個同步函數
: 我希望每次都做完這個function才延遲
: 大概像是下面這樣
: while (cnt<999) {
: function()
: delay()
: cnt++
: }
: 我試過了setTimeout 結果跟預期的不同
: 用了promise跟then的作法也是不如預期
: 請問各位大神有什麼方法可以做到我要的效果呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.50.145.214
※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1530806131.A.DE8.html
→
07/06 09:55,
6年前
, 1F
07/06 09:55, 1F
推
07/06 22:28,
6年前
, 2F
07/06 22:28, 2F
→
07/06 22:28,
6年前
, 3F
07/06 22:28, 3F
上面原文我沒有寫可以正確執行的程式 直接複製貼上會不能用
setTimeout() 的第一個參數 這個函式要用引號 " 括起來
如下
function someRecursive(cnt) {
/* do something */
if (cnt < 999) {
setTimeout("someRecursive("+(cnt + 1)+")", 5000)
}
}
這樣應該就可以了
※ 編輯: itisjoe (110.50.145.214), 07/07/2018 00:44:41
推
07/07 01:51,
6年前
, 4F
07/07 01:51, 4F
討論串 (同標題文章)
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章