前提概念
- js是一门单线程语言,通过事件驱动,来完成异步任务
- 同步任务
- 异步任务
- 宏任务 :ajax setTimeout , setInterval, script
- 微任务 :Promise, process.nextTick
执行顺序
- 主线程js代码
- 在执行完主线程代码后检查,微任务事件对列,是否有待执行事件
- 最后检查宏任务事件对列
script -> Promise -> setTimeout -> script
注意
异步任务只是在任务结束时,将对应事件放入待执行的事件对列内,具体执行时间需要等本次主线空闲后才能执行