事件循环

35 阅读1分钟

事件循环**(eventloop)**

1、JS是单线程,防止代码阻塞,把任务分为:同步和异步

2、同步任务代码给JS引擎执行、异步任务交给宿主环境

3、同步代码放入执行栈中、异步代码等待时机成熟送入任务队列排队

4、等执行栈执行完成后、会去任务队列看是否有异步任务、有就送到执行栈执行,反复循环查看是否有异步任务

JS把异步任务分为宏任务和微任务

promis本身是同步任务 then/catch是异步任务

宏任务和微任务的执行过程:

1、同步任务代码给JS引擎执行、异步任务交给宿主环境

2、异步任务中的微任务先执行(JS引擎)

3、异步任务中的宏任务在执行(宿主环境)