KinoOfficial / ES6-course

0 stars 0 forks source link

事件循环eventloop #6

Open KinoOfficial opened 1 year ago

KinoOfficial commented 1 year ago

宏任务 macro-task:整体的js代码 比如setTimeout, setInterval 微任务 micro-task:比如promise nextTick 有微则微 无微则宏

console.log(1) setTimeout(function(){ console.log(2) }) new Promise(function(resolve){ console.log(3) resolve() }).then(()=>{ console.log(4) setTimeout(function(){ console.log(5) }) }) //输出结果 1 3 4 2 5

KinoOfficial commented 1 year ago

Promise.resolve().then(()=>{ console.log(1) setTimeout(()=>{ console.log(2) }) }) setTimeout(()=>{ console.log(3) Promise.resolve().then(()=>{ console.log(4) }) }) console.log(5) //输出结果 5 1 3 4 2

先执行3再执行2是因为 3的宏任务先被侦测到并被放入栈中,2的宏任务是清空微任务栈时才被侦测