JS异步之宏队列与微队列

本文介绍了JavaScript中的异步任务执行机制,重点讲解了宏队列和微队列的区别。JS执行过程包括同步任务、宏任务和微任务。微队列的回调函数优先于宏队列执行,宏队列主要包含定时器回调、DOM事件和ajax等,而微队列主要处理Promise回调。在每个宏任务开始前,会先执行所有微任务。
摘要由CSDN通过智能技术生成

异步任务都放到“任务队列”中执行 队列分为宏队列和微队列

在这里插入图片描述

setTimeout(()=>{//会立即放入宏队列
  console.log("timeout callback()")
},0)
Promise.resolve(1).then(
  value=>{ //会立即放入微队列
   console.log("Promise onResolved()",value)
  }
)

执行如下:在这里插入图片描述
微队列的回调函数优先执行

说明:
1、JS中用来储存待执行回调函数的队列包含2个不同特定的队列
2、宏队列:用来保存待执行的宏任务(回调)比如:定时器回调、DOM事件回调、ajax回调
3、微队列:用来保存待执行的微任务(回调),比如promise的回调
4、JS执行时会区别这2个队列
(1)JS 引擎首先必须先执行所有的初始化同步任务代码
(2)每次准备取出第一个宏任务执行前,都要将所有的微任务一个一个取出来执行

setTimeout(()=>{//立即放入宏队列
 console.log("timeout callback1()")
 Promise.resolve(3).then(
   value=>{ //立即放入微队列
     console.log("Promise onResolved3()",value)
   }
 )
}0)
setTimeout(()=>{//立即放入宏队列
  console.log("timeout callback2()")
}0)
Promise.resolve(1).then(
 value=>{//立即放入微队列
 console.log("Promise onResolved1()",value)
 }
)
Promise.resolve(2).then(
 value=>{//立即放入微队列
 console.log("Promise onResolved2()",value)
 }
)

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值