分别为大任务和小任务
js开始运行时会分析代码,先执行大任务中的第一个,然后执行小任务中的所有,再执行大任务中的第二个,循环执行;
macrotasks: script,setTimeout, setInterval, setImmediate, I/O, UI rendering microtasks: process.nextTick, Promises, Object.observe, MutationObserver
console.log('start')
setTimeout(function () {
console.log('time out')
}, 0)
Promise.resolve().then(function () {
console.log('p1')
}).then(function () {
console.log('p2')
})
Promise.resolve().then(function () {
console.log('p3')
}).then(function () {
console.log('p4')
})
console.log('end')
start
end
p1
p3
p2
p4
time out
