web前端for迴圈中settimeout的問題?

時間 2021-06-05 10:28:32

1樓:walker2016

都沒答到點子上,題主的問題是把第二個引數i乘以1000都當做是乙個閉包來使用。然而事實情況是,settimeout函式本身是立即執行的,所以你傳給他的i*1000的i也是立即變為當前的i去定時!而callback才是真正的延時執行,並且不一定是間隔1s,你可以輸出到毫秒級別會發現這個東西只能是大致1s

2樓:笑陽Sean

我的理解是:setTimeout是同步執行的,它將第乙個引數,即function()掛載到所謂的任務佇列中,隨著i++,如下執行:

setTimeout

(function(),

0)setTimeout

(function(),

1000

)setTimeout

(function(),

2000

)setTimeout

(function(),

3000

)....

等到for迴圈結束了,再將事件拿出來處理,此時i為10。我們都知道任務佇列是先進先出的,於是列印出:

0秒的時候:10;

1秒之後:10;

2秒之後:10.......

粗淺理解,不對的地方請指教。

3樓:Sniper

因為這個setTimeout後面這個引數是i*1000,也就是說是1000,2000,3000.......毫秒之後執行函式,所以就是一秒乙個咯

web前端好學麼?

已重置 好不好學都是因人而異的。假如你非常想學,並且有吃苦耐勞的精神,我敢說,好學!假如你是一時興起,而不是真正的熱愛,我想說,不好學! 蘇夢苓 其實我們學習什麼都比較好學,相對來說一般的話開始的時候興趣會比較大一些。剛開始學習的時候也是比較有激情,入門方面的話簡單些,但是想要學好,那難度還是比較大...

web前端學習迷茫

weekbin 學會前端基礎,能熟練的進行業務開發,可以完善一下自己的專案 學會使用各種常用第三方工具 完善的過程中會遇到很多問題需要遞迴學習。如果專案之前沒有用 vue react 之類的框架,可以嘗試用框架整理重寫一下,中間有會遇到很多問題需要學習。開始思考專案用不用框架的區別,框架的原理,又一...

如何堅持自學Web前端?

堅持的前提是有動力,能看到結果 建議找個前端學習群或者一起學習的小夥伴,在基本入門的情況下就可以試著仿一些簡單的網頁,慢慢的能看到自己的作品就有了繼續學下去的動力了 NullFeng 堅持不下去就對了,說明不是很適合你,硬要堅持下去只會讓你越來越累,何必呢?換個其它的,只要你感興趣,越堅持越快樂!當...