function runMicroTask(executor){
if(process && process.nextTick){
process.nextTick(executor)
}else if(MutationObserver){
const p=document.createElement('p')
const observer=new MutationObserver(executor)
observer.observe(p,{
childList:true
})
p.innerHTML='1'
}else{
setTimeout(executor)
}
}
区分node和浏览器环境
node有全局对象process,通过process.nextTick可直接将任务放入微队列。
浏览器有全局对象MutationObserver,创建一个元素,监听到变化就可以将任务放入微队列。