上海做网站就用乐云seo十年顺义建站好的公司

张小明 2026/1/9 21:53:20
上海做网站就用乐云seo十年,顺义建站好的公司,googleseo排名公司,公司建设欢迎使用我的小程序#x1f447;#x1f447;#x1f447;#x1f447; 俱好用助手功能介绍 大家好#xff01;今天我们来聊聊JavaScript中那个让人又爱又恨的话题——事件循环中的宏任务和微任务。别担心#xff0c;我不会用那些晦涩难懂的专业术语轰炸你#xff0c;而…欢迎使用我的小程序 俱好用助手功能介绍大家好今天我们来聊聊JavaScript中那个让人又爱又恨的话题——事件循环中的宏任务和微任务。别担心我不会用那些晦涩难懂的专业术语轰炸你而是用一个超有意思的比喻带你理解这个概念一个让人困惑的例子先看这段代码猜猜它会按什么顺序输出console.log(1. 开始点餐);setTimeout((){console.log(6. 20分钟后主菜来了);},0);Promise.resolve().then((){console.log(4. 先上开胃小菜);});console.log(2. 点完餐了);Promise.resolve().then((){console.log(5. 再上汤品);});console.log(3. 等待上菜);// 实际输出顺序// 1. 开始点餐// 2. 点完餐了// 3. 等待上菜// 4. 先上开胃小菜// 5. 再上汤品// 6. 20分钟后主菜来了咦setTimeout不是设置0毫秒吗为什么最后才执行这就是宏任务和微任务在搞鬼餐厅比喻理解事件循环想象一下JavaScript引擎就像一家餐厅主厨JavaScript引擎只能一次做一件事但他有个聪明的系统来处理所有订单。点餐台调用栈是主厨当前正在做的菜一次只能做一道。等待区任务队列是所有等待被做的菜分为两个区域VIP区微任务队列开胃小菜、汤品等优先处理的普通区宏任务队列主菜、甜点等稍后处理的什么是宏任务和微任务宏任务主菜就像餐厅的主菜需要更多准备时间setTimeout/setInterval定时器setImmediateNode.js环境I/O操作如读取文件UI渲染浏览器中整体的script代码微任务开胃菜像餐厅的餐前小点快速准备优先上桌Promise.then()/.catch()/.finally()process.nextTick()Node.js环境MutationObserver浏览器API事件循环的工作流程让我用更直观的方式展示// 事件循环的简化版流程while(true){// 1. 执行当前宏任务执行当前任务();// 2. 执行所有微任务while(微任务队列中有任务){执行微任务();}// 3. 如果需要渲染UI浏览器中// 4. 从宏任务队列取下一个任务开始下一个宏任务();}实战理解点餐流程详解让我们回到最初的例子看看具体发生了什么// 第一轮执行整体script这是一个宏任务console.log(1. 开始点餐);// 直接执行setTimeout((){console.log(6. 20分钟后主菜来了);},0);// 回调函数放入宏任务队列Promise.resolve().then((){console.log(4. 先上开胃小菜);});// 回调函数放入微任务队列console.log(2. 点完餐了);// 直接执行Promise.resolve().then((){console.log(5. 再上汤品);});// 回调函数放入微任务队列console.log(3. 等待上菜);// 直接执行// 当前宏任务执行完毕// 开始检查微任务队列...// 第二轮执行所有微任务// 执行第一个Promise回调输出4. 先上开胃小菜// 执行第二个Promise回调输出5. 再上汤品// 微任务队列清空// 第三轮执行下一个宏任务// 执行setTimeout回调输出6. 20分钟后主菜来了有趣的进阶例子console.log(客人入座);setTimeout(()console.log(主菜),0);Promise.resolve().then((){console.log(开胃菜);returnPromise.resolve();}).then((){console.log(汤品);setTimeout(()console.log(甜点),0);});console.log(点餐完成);// 输出顺序// 客人入座// 点餐完成// 开胃菜// 汤品// 主菜// 甜点注意即使setTimeout在微任务中被设置它仍然是宏任务要等到下一轮为什么这样设计JavaScript是单线程的如果没有这种优先级机制用户界面会经常卡住。微任务机制允许高优先级任务如Promise回调插队执行确保快速响应。想象一下如果你在网页上点击一个按钮它触发的Promise回调微任务需要等到所有setTimeout宏任务都执行完才能响应用户体验会有多糟糕记忆技巧同步代码 微任务 宏任务每个宏任务执行完后都会清空整个微任务队列微任务中可以产生新的微任务但要注意避免无限循环总结记住这个简单的规律宏任务像餐厅的主菜按顺序一道道上微任务像餐前小点总是在主菜之前全部上完事件循环主厨总是先做完当前菜然后处理所有小点再做下一道主菜理解宏任务和微任务能帮你避免很多异步编程的坑写出更可预测的代码。下次看到奇怪的执行顺序时想想餐厅的比喻吧希望这篇文章能帮你理清这个JavaScript的重要概念如果有疑问或想分享你的理解欢迎在评论区讨论 ️✨小测试你能预测下面代码的输出顺序吗console.log(1);setTimeout(()console.log(2),0);Promise.resolve().then(()console.log(3)).then(()console.log(4));console.log(5);把你的答案写在评论区吧
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

如何做淘宝客网站推广网站系统建设招标文件

如何用自动化工具解放你的网课时间?智慧树学习助手深度体验 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台的重复性操作消耗大量时间而困…

张小明 2026/1/10 4:20:31 网站建设

汉中 网站建设wordpress汉字

Dress Code数据集终极指南:掌握高分辨率虚拟试衣核心技术 【免费下载链接】dress-code 项目地址: https://gitcode.com/gh_mirrors/dre/dress-code Dress Code高分辨率虚拟试衣数据集正在重新定义时尚AI研究的边界,为计算机视觉领域提供了前所未…

张小明 2026/1/10 4:53:15 网站建设

专业版装修用什么网站做导航条鄂州网红打卡地

EmotiVoice能否替代专业配音?实测对比告诉你答案 在有声书平台每分钟新增上千小时内容的今天,传统配音模式正面临前所未有的效率瓶颈。一位专业配音演员录制一小时高质量音频通常需要4~6小时完成,而市场对内容更新速度的要求却越来…

张小明 2026/1/9 11:53:10 网站建设

做p2p网站的主页模板怎么在wordpress免费注册博客网站

适用于INCA标定用的A2L文件生成工具(支持CCP标定和XCP标定的A2L文件),如有需要可联系,同时提供CANape标定用的A2L生成工具,附两款工具的使用说明,在A2L文件制作过程中出现问题随时可联系我。 注意:目前只支持加载. elf…

张小明 2026/1/10 5:06:35 网站建设

网站被百度删除的原因有哪些做网站好的公司

Kotaemon珠宝定制咨询服务流程 在高端消费品领域,尤其是像珠宝定制这样的高价值、高情感投入的服务场景中,客户期待的早已不止是一句“您好,请问有什么可以帮您?”他们希望获得专业、连贯且富有温度的个性化建议——从材质选择到宝…

张小明 2026/1/9 7:33:35 网站建设

专做奢侈品品牌的网站深圳哪里有网络推广渠避

1. 存储介质:先把“砖头”讲清楚 Aerospike 支持的存储介质主要有三类:DRAM(内存) 读写延迟最低,成本也最高NVMe Flash / SSD 非易失性存储,延迟一般在几十到几百微秒容量大、价格相对便宜,是 H…

张小明 2026/1/7 18:15:06 网站建设