這篇文章解決了我很久的困惑,也希望能夠解決看到的小夥伴的困惑,謝謝。
Promise的三種狀态到底是什麼?
- pending
- fulfilled
- rejected
下面我們先看下三種狀态的産生
1.pending狀态的Promise
const promise1 = new Promise((resolve,reject) => {
})
console.log(promise1);

2. fulfilled狀态的Promise
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve()
})
})
console.log(promise1);
3. rejected狀态的Promise
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
reject();
})
});
console.log(promise);
從pending狀态到fulfilled狀态的變化過程
- resolve()後狀态從pending變為了fulfilled
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
console.log('resolve前Promise的狀态:',promise);
resolve();
console.log('resolve後Promise的狀态:',promise);
})
});
從pending狀态到rejected狀态的變化過程
- reject()後狀态從pending變為了rejected
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
console.log("Promise的狀态:reject前:",promise);
reject();
console.log("Promise的狀态:reject後:",promise);
})
});
下面介紹下關于Promise狀态的可能的疑問
疑問1:resolved狀态和fulfilled狀态是一回事嗎?
答:并不是一回事,resoved狀态指的是完成了,不會再改變的狀态,隻是一種叫法,并不是真正的狀态,真正的狀态還是前文提到的那三種,pending、fulfilled、rejected這三種,是以resolved狀态可能是fulfilled也可能是rejected。