为了账号安全,请及时绑定邮箱和手机立即绑定

请问下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下载
官方微信