个人对Promise状态的理解
-
初始状态pending状态
-
执行reject()或resolve()谁先执行就会先锁定状态,后者不再执行(其他代码执行不受影响)
-
Promise状态一旦确定下来, 那么就是不可更改的(锁定)
new Promise((resolve, reject) => {
// pending状态: 待定/悬而未决的
console.log("此时pending状态")
reject() // 处于rejected状态(已拒绝状态) 先执行锁定rejected
resolve() // 处于fulfilled状态(已敲定/兑现状态) 不再执行改变状态
console.log("这行代码会执行")
}).then(res => {
console.log("res:", res) //rejected状态,所以这里 不 执行
}, err => {
console.log("err:", err) //rejected状态,在这里打印结果
})
代码中Promise是已拒绝状态,因为先执行了 reject 改变了Promise状态