一,事件环的执行顺序
1,例子
2,main script=》微任务=》宏任务中的第一项=》微任务=》宏任务中的第二项=》微任务=》。。。
3,执行流程
1)同步和异步任务分别进入不同的执行"场所",同步的进入主线程,异步的进入Event Table并注册函数
2)当指定的事情完成时,Event Table会将这个函数移入Event Queue(事件队列)。
3)主线程内的任务执行完毕为空,会去Event Queue读取对应的函数,进入主线程执行。
4)上述过程会不断重复,也就是常说的Event Loop(事件循环)。
4,微任务和宏任务皆为异步任务,它们都属于一个队列
1)宏任务一般是:包括整体代码script,setTimeout,setInterval、setImmediate。
2)微任务:原生Promise(有些实现的promise将then方法放到了宏任务中)、process.nextTick、Object.observe(已废弃)、 MutationObserver