Promise 构造函数的执行时机
分析 Promise 构造函数中的代码执行顺序和状态
问题
下面代码的输出是什么?
const promise1 = new Promise((resolve, reject) => {
console.log('promise1')
})
console.log('1', promise1);
解答
代码执行过程:
- 执行
new Promise,Promise 构造函数中的代码会立即同步执行,输出'promise1' - 执行
console.log('1', promise1),此时 promise1 没有调用 resolve 或 reject,状态为 pending
输出结果:
'promise1'
'1' Promise{<pending>}
关键点
- Promise 构造函数中的代码是同步执行的,不是异步
- 只有
.then()、.catch()等回调才是异步执行 - 未调用 resolve 或 reject 时,Promise 状态保持为 pending
目录