久久久九九精品国产毛片a片/青青青在线免费观看/四虎影在永久在线观看/久久久久影院色老大2020/成年人网站在线观看视频/av手机在线看片/手机在线看片国产/亚洲午夜爱爱香蕉片/国产真实乱人偷精品视频/亚洲黄色一区二区/又粗又黑又大的吊av/91少妇精拍在线播放/国产激情无码视频在线播放性色/日韩国产在线/伊伊综合在线视频无码/av天堂久久精品影音先锋/中文字幕高清/无码一区二区三区中文字幕

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.devb.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、網站建設 平面設計服務

日歷

鏈接

個人資料

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

存檔