宏任务:script(整体代码)、setTimeout、setInterval 、setImmediate 、I/0
微任务:promise Object.observe MutationObserver
setTimeout(() => {
console.log(2);
}, 0); //默认4毫秒
new Promise(function (resolve) {
console.log(3);
resolve()
console.log(4);
}).then(function () {
console.log(5);
})
console.log(8);
结果:3 4 8 5 2 new里面不存在异步 正常执行,then里面有异步属于微任务,setTimeout属于宏任务
微任务是跟屁虫,一直跟在当前宏任务后面,代码执行到微任务就跟上去,一个接着一个
网友评论