【JS基础】promise.then 如果没有被 resolve,不会立即执行,而是先执行宏任务,等待 promise resolve后才会执行

发布时间 2023-07-03 19:48:44作者: zjy4fun
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 之后才会执行