微任务和宏任务

在JavaScript中,任务分为两种类型:微任务和宏任务。

微任务是在当前任务执行完成后立即执行的任务,例如Promise回调、MutationObserver回调等。微任务的执行优先级高于宏任务。

宏任务是在当前任务执行完成后,等待一定时间后再执行的任务,例如setTimeout回调、setInterval回调、事件回调等。

在任务队列中,微任务排在宏任务之前执行。

例如以下代码:

复制代码
console.log("start");

setTimeout(() => {
  console.log("setTimeout");
}, 0);

Promise.resolve().then(() => {
  console.log("promise");
});

console.log("end");

输出的结果为:

复制代码
start
end
promise
setTimeout

原因是先执行同步代码输出start和end,然后遇到微任务,执行Promise回调输出promise,最后执行宏任务输出setTimeout。

相关推荐
Yyyy4825 小时前
标签Labels、Scheduler:调度器、k8s污点与容忍度
开发语言·kubernetes
来来走走5 小时前
Android开发(Kotlin) 扩展函数和运算符重载
android·开发语言·kotlin
zz-zjx5 小时前
云原生LVS+Keepalived高可用方案(二)
开发语言·php·lvs
wuwu_q5 小时前
用通俗易懂 + Android 开发实战的方式,详细讲解 Kotlin Flow 中的 retryWhen 操作符
android·开发语言·kotlin
JIngJaneIL5 小时前
助农惠农服务平台|助农服务系统|基于SprinBoot+vue的助农服务系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·助农惠农服务平台
云外天ノ☼5 小时前
待办事项全栈实现:Vue3 + Node.js (Koa) + MySQL深度整合,构建生产级任务管理系统的技术实践
前端·数据库·vue.js·mysql·vue3·koa·jwt认证
gihigo19985 小时前
使用JavaScript和Node.js构建简单的RESTful API
javascript·node.js·restful
一位搞嵌入式的 genius5 小时前
前端实战开发(三):Vue+Pinia中三大核心问题解决方案!!!
前端·javascript·vue.js·前端实战
塞纳河畔的歌5 小时前
保姆级教程 | 麒麟系统安装Edge浏览器
前端·edge
网络精创大傻5 小时前
PHP 与 Node.js:实际性能对比
开发语言·node.js·php