算法打印搞清楚 -> 微任务,宏任务

本文深入探讨了JavaScript的执行顺序,包括同步队列、微任务和宏任务的执行流程。通过示例解析了Promise和定时器(setTimeout)在不同任务队列中的行为,阐述了Promise的resolve和reject如何触发then和catch的调用。同时,文章还展示了如何通过while循环阻塞代码执行,以及微任务和宏任务的执行顺序对输出结果的影响。
摘要由CSDN通过智能技术生成

执行顺序:同步队列——>微任务——>宏任务

同步队列执行完了才会去检查微任务和宏任务,微任务执行完然后在看宏任务的队列,将其放入执行队列
微任务:Promise.then()
宏任务:setTimeout,setInterval

Promise,reject();是执行catch里的内容
resolve()是执行then里的内容

console.log("AAAA")
setTimeout(()=>console.log("BBBB"),1000)
const start = new Date()
while(new Date() - start < 1000){}  //while阻塞下面代码执行
console.log("CCCC")
setTimeout(()=>console.log("DDDD"),0)
new Promise ((resolve,reject)=>{
    resolve();  //执行then里代码
    reject();  //执行catch里代码
    console.log("EEEE")

}).then(()=>console.log("FFFF"))
.then(()=>console.log("GGGG"))
.then(()=>console.log("HHHH"))
.catch(()=>console.log("reject"))
console.log("IIII")
// 结果:AAAA  CCCC   EEEE  IIII  FFFF  GGGG  HHHH  BBBB  DDDD

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值