关于异步:宏任务macroTask和微任务microTask

宏工作:setTimeout,setInterval,ajax,DOM事件
微工作:Promise,async/await
微工作执行机会比宏工作早
console.log(100)
//宏工作
setTimeout(()=>{
    console.log(200)
})
//微工作
Promise.resolve.then(()=>{
    console.log(300)
})
console.log(400)
//打印程序:100,400,300,200

为什么微工作比宏工作执行的早

  1. 宏工作:DOM渲染后触发,如setTimeOut
  2. 微工作:DOM渲染前触发,如Promise

宏工作和微工作的基本区别

  1. 宏工作是浏览器规定的;
  2. 微工作是es6语法规定的;
  3. 微工作期待机会放在micro task queue中,首先执行同步代码,当代码执行实现,call stack清空之后,执行以后的微工作,再尝试DOM渲染,最初触发event loop机制;

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理