Event Look
Js执行机制,js是单线程的,如果前面的任务执行耗时过长,就会阻塞后面的代码执行,这是不可接受的,所以js就分出了同步和异步的概念
同步任务
是代码从上到下依次执行
异步任务
异步任务又分为 宏任务 和 微任务
- 宏任务
script(整体代码)、定时器、UI交互时间、postMessage、Ajax
- 微任务
Promise.then、catch、finally、MutaionObserver、process.nextTick(Node.js环境)
所有同步任务都是主进程执行的一个执行栈,主线程外还有一个任务队列,异步任务执行队列中先执行 宏任务 ,然后清空当此 宏任务 中的所有微任务,然后进行下一个tick如此形成的循环
nextTick就是创建一个异步任务,那么他自然要等到同步任务执行完之后才执行