Web前端必做笔记之一:JavaScript运行机制(三) 宏任务微任务
<script>
// 宏任务:计时器,ajax,读取文件
// 微任务:promise.then
// 执行顺序
// 1.同步程序
// 2.process.nextTick
// 3.微任务
// 4.宏任务
// 5.setImmediate
setImmediate(()=>{
console.log(1)
})
console.log(2);
setTimeout(()=>{console.log(3)},0);
setTimeout(()=>{console.log(4)},100);
console.log(5);
new Promise((resolve) =>{
console.log(6); //这个是同步的代码,这是在运行栈里执行的
resolve()
}).then(()=>{
console.log(7); //这个是放入任务队列中
})
process.nextTick(()=>{
console.log(8)
})
//所以输出2,5,6,8,7,3,1,4
</script>
总结:
1. 宏任务:计时器,ajax,读取文件
2.微任务:promise.then
3.我们要记住这个执行顺序
(1).同步程序
(2).process.nextTick
(3).微任务
(4).宏任务
(5).setImmediate