【JS错误总结】promise.then 如果没有被 resolve,不会立即执行,而是先执行宏任务,等待 promise resolve后才会执行
setTimeout(() => {
console.log('setTimeout')
}, 0)
let promise = new Promise((resolve, reject) => {
console.log('1')
setTimeout(() =>{
console.log('timeStart')
resolve('success')
console.log('timeEnd')
}, 0)
console.log('2')
})
promise.then((res) => {
console.log(res)
})
// 1 2 setTimeout timeStart timeEnd success
// 注意: 最后这个 promise.then 微任务没有立即执行,而是等待宏任务执行完,把 promise resolve 之后才会执行