事件循环**(eventloop)**
1、JS是单线程,防止代码阻塞,把任务分为:同步和异步
2、同步任务代码给JS引擎执行、异步任务交给宿主环境
3、同步代码放入执行栈中、异步代码等待时机成熟送入任务队列排队
4、等执行栈执行完成后、会去任务队列看是否有异步任务、有就送到执行栈执行,反复循环查看是否有异步任务
JS把异步任务分为宏任务和微任务
promis本身是同步任务 then/catch是异步任务
宏任务和微任务的执行过程:
1、同步任务代码给JS引擎执行、异步任务交给宿主环境
2、异步任务中的微任务先执行(JS引擎)
3、异步任务中的宏任务在执行(宿主环境)