亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

請問下count的計數邏輯

老師,在count++之后執行了doload函數,doload函數在圖片加載成果之后又調用了done函數,在done函數里面又有個if邏輯判斷條件是--count,如果images里面一共有4個圖片,遍歷imges數組的時候每次都是count++,然后count--,怎么會有加到4的情況出現?我不知道我這么想是否是正確的?

正在回答

2 回答

同學你好,你要理解圖片的加載是一個異步過程,而js是單線程執行,這是一個同步過程,也就是說假設4個圖片,遍歷數組的時候會執行count++,最后記到4,然后當圖片加載完畢的時候才會執行done函數,然后做count--,當count為0的時候表示所有的圖片加載完畢

1 回復 有任何疑惑可以回復我~
#1

豆瓣兒小朋友

也就是說無論是img.onload還是img.onerror都是異步過程,在遍歷完成之后才會去執行么?那么在遍歷數組的時候會執行4次onload(或onerror),done也會執行4次么?(以4個圖片為例)
2016-07-08 回復 有任何疑惑可以回復我~
#2

ustbhuangyi 回復 豆瓣兒小朋友

img.onload還是img.onerror都是異步過程,他們執行的時機是在遍歷完成以后。也就是說先遍歷完,計數加到4。當img.onload還是img.onerror執行后,done函數被調用,計數會減到0
2016-07-08 回復 有任何疑惑可以回復我~
#3

舊城Cafe 回復 ustbhuangyi

請問一下意思是整個loadImage函數執行完之后才會執行img.onload和img.onerror吧?就是說后面設置timeout也會先于img.onload和img.onerror
2016-07-13 回復 有任何疑惑可以回復我~
#4

lovecherry

回復 舊城Ca
2016-11-23 回復 有任何疑惑可以回復我~
#5

慕粉Dream不重復 回復 舊城Cafe

我想問timeoutId = setTimeout(onTimeout, timeout);這個timeoutId是什么時候創建?因為setTimeout也是一個異步過程呀不是嗎?
2017-03-21 回復 有任何疑惑可以回復我~
#6

慕粉Dream不重復

老師~請問一下,按個超時事件是不是排在圖片加載任務的后面呀,這樣會不會如果超時了也要一直要等到圖片加載任務完成才會去調用超時事件,就是說永遠也觸發不了超時事件?不知道我說明白沒有。。。
2017-03-21 回復 有任何疑惑可以回復我~
查看3條回復

謝謝~~剛學編程接觸的第一個語言就是JS,不太理解異步這個概念,我還得看看`~~~~

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

請問下count的計數邏輯

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號