宏任务&微任务
macro-task(宏任务):
-
包括整体代码script,setTimeout,setInterval
-
宏任务所处的队列就是宏任务队列
-
宏任务队列可以有多个
micro-task(微任务):
-
new Promise.then(回调),process.nextTick
-
微任务所处的队列就是微任务队列
-
只有一个微任务队列
-
在上一个宏任务队列执行执行完毕后,如果有微任务队列就会执 行微任务队列中的所有微任务
-
当宏任务队列的中的任务全部执行完以后,会查看是否有微任务队列,如果有先执行微任务队列中的所有任务,如果没有就查看是否有下一个宏任务队列重复执行之前的执行步骤。
// 主线程(宏任务队列)
console.log('==== start ====')
// 第二个宏任务
setTimeout(function () {
console.log('定时器'<