什么是宏任务?什么是微任务
微任务:Promise、async await
宏任务:setTimeout、setInterval、Ajax、DOM事件
二者的区别
先执行微任务,后执行宏任务
宏任务、微任务、DOM渲染的关系
- Call Stack 清空,触发Event Loop
- 执行微任务
- DOM渲染
- 执行宏任务
完整Event Loop过程
<script>
// 会把所有的同步代码执行完成之后,才会执行异步代码
console.log("start");
setTimeout(() => {
alert("setTimeout");
}, 0);
Promise.resolve().then(() => {
alert("Promise");
});
console.log("end");
</script>