宏任务和微任务的理解

85 阅读1分钟

js是单线程语言,而浏览器可以处理好众多的异步任务,靠的就是宏任务(macroTask)与微任务(microTask),这2种类型实际上都是异步任务

常见的宏任务 setTimeout setInterval setImmediate (node环境下是,而浏览器环境下不是) requestAnimationFrame (在浏览器环境是,而node环境不是) MessageChannel

常见微任务 promise.then MutationObserver process.nextTick

代码的执行顺序是 先执行同步任务,在执行异步任务,发现有微任务,先执行微任务,微任务清空之后,再去执行宏任务