关于js setTimeout alert阻塞进程

前几天看了关于这方面的一个问题 发现有些没有理解



console.log(0,1,2,3,4)

for(let i=0;i<5;i++){

    setTimeout(function(){

        console.time();

        alert(i);

        console.info(i);

        console.timeEnd()

    },1000)

}

有什么规律可循吗,如果可以希望再详细讲解一下 谢谢!

https://img3.mukewang.com/5c89ff5f000127a402850293.jpg

https://img.mukewang.com/5c89ff6000016e5b02740289.jpg

https://img1.mukewang.com/5c89ff600001d50002690273.jpg


倚天杖
浏览 1579回答 2
2回答

ibeautiful

for循环并不会等待定时器执行完在执行.所以for循环执行完之后,产生了(可以理解成线程)五个线程然后这五个线程去抢夺cpu时间片,谁先抢到谁执行,所以打印顺序不一致.在for循环后加一句console.log就可以看效果哦.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript