js 宏任务和微任务
- 代码
setTimeout(function() {
// 异步宏任务
console.log('1');
})
new Promise(function(resolve) {
// 同步
console.log('2');
}).then(function() {
// 微任务
console.log('3');
})
// 同步
console.log('4');
//打印顺序 2 4 3 1
- 解析:
- 此段代码的宏任务: js全部代码、setTimeout; 微任务:promise.then
- 执行的时候先执行第一个宏任务,即js全部代码,在执行里面的微任务 promise,最后执行下一个宏任务 setTimeout
- 图解:
- 常见宏任务和微任务
- 宏任务:script全部代码、setTimeout、setInterval、setImmediate(浏览器暂时不支持,只有IE10支持,具体可见MDN)、I/O、UI Rendering
- 微任务:Process.nextTick(Node独有)、Promise、Object.observe(废弃)、MutationObserver
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南