javascript 任务主要分为同步任务和异步任务
同步任务直接在主线程(主任务栈执行)
异步任务会被放入事件队列 Event Queue
异步任务会被事件队列的机制协调
主线程任务执行完毕后 到任务队列获取到相应任务推入主线程执行 如此循环往复就是事件循环 Event Loop
执行完当前主线程任务后,检查事件队列是否有微任务
如果有微任务则执行完所有微任务,然后执行一个宏任务,执行完一个宏任务后在检查是否有微任务
如果没有微任务,则执行一个宏任务,执行完一个宏任务后在检查是否有微任务
宏任务分类:
主代码块、定时器、绑定的事件(UI交互事件)
微任务分类:
promise process.nextTick()