分别为大任务和小任务
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