event loop 事件循环
微任务:
有js引擎发起的任务(promise),微任务包括process、nextTick、promise、mutationObserve
宏任务:
又宿主对象发起的任务(setTimeout),宏任务包括setTimeout、setInterval等等
执行顺序如下:
1、在异步事件执行完操作后会放入一个执行队列里,根据这个异步事件的类型会被放入对应的宏任务队列或者微任务队列中;
2、当执行栈为空时,主线程会先去执行微任务队列中对应的回调函数,再去执行宏任务队列中的任务;
3、在一次循环中微任务永远在宏任务之前