关于异步执行回调函数时间的问题
来源:17-3 异步和单线程-单线程
慕粉3732965
2017-07-03

据我了解,虽然JS引擎是单线程执行程序的,但是浏览器是拥有多进程的,其中有类似于一个定时器进程来处理setTimeout()函数的,当setTimeout()到时间了,再把setTimeout()中的回调函数添加到任务队列中排队等待JS引擎在空闲的时候执行。所以我理解的setTimeout()中的这1s是加入到定时器进程中就开始计时倒数的(它应该是和JS引擎并行执行的倒计时),而不是像老师您在视频说的先把setTimeout()暂存起来,等轮到它执行的时候才开始倒数的。同理ajax等异步应该都有相应的浏览器进程作相应的处理。
这是我的个人理解,关于和您视频里讲的不同的理解带来的困惑,请老师解答下
写回答
1回答
-
双越
2017-07-03
“所以我理解的setTimeout()中的这1s是加入到定时器进程中就开始计时倒数的(它应该是和JS引擎并行执行的倒计时),而不是像老师您在视频说的先把setTimeout()暂存起来”——我近期看过一篇文章是这样说的,我觉得也有道理。
其实针对这一问题,我觉得也没必要过于纠结,还是实用为主,了解大体的执行过程即可。继续往下看,先把整个教程看完。
122017-08-21
相似问题