console.log(1)
setTimeout(()=>{
console.log(2)
Promise.resolve().then(()=>{
console.log(3)
})
},0)
new Promise(function (r,s) {
console.log(4)
setTimeout(()=>{
console.log(5);
r('6')
},0)
}).then((res)=>{
console.log(7)
setTimeout(()=>{
console.log(res)
},0)
})
//1,4,2,3,5,7,6
个人理解,事件循环,有宏任务,整个的script代码,setTimeout,
微任务有promise
一般都是先执行主线程代码,把宏任务放一边,再执行主线程的微任务,执行完了后,拿出一个宏任务到主线程来执行,有宏任务放一边,执行微任务,再一次拿出宏任务循环,这就是事件循环