console.log('start')
setTimeout(() => {
console.log('timer1')
Promise.resolve().then(function() {
console.log('promise1')
})
}, 0)
setTimeout(() => {
console.log('timer2')
Promise.resolve().then(function() {
console.log('promise2')
})
}, 0)
Promise.resolve().then(function() {
console.log('promise3')
})
console.log('end')
//node 11及以上版本
// start => end => promise3 => timer1 => promise1 => timer2 => promise2
// node 11以下版本
// start => end => promise3 => timer1 => timer2 => promise1 => promise2
总结,node11及以上版本,和浏览器的行为统一了,都是每执行一个宏任务就执行完微任务队列。