Promise的状态
- Pending(进行中):初始状态,既没有被兑现,也没有被拒绝。
- Fulfilled(已兑现):意味着操作成功完成。
- Rejected(已拒绝):意味着操作失败。
状态转换
- Pending -> Fulfilled:当Promise的
resolve
函数被调用时,Promise从Pending
状态转换到Fulfilled
状态。
- Pending -> Rejected:当Promise的
reject
函数被调用时,Promise从Pending
状态转换到Rejected
状态。
一旦Promise进入Fulfilled
或Rejected
状态,就不会再转换到其他状态。
手动触发状态转换示例
// Pending -> Fulfilled
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('成功的数据');
}, 1000);
});
promise1.then((value) => {
console.log(value); // 输出:成功的数据
});
// Pending -> Rejected
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error('操作失败'));
}, 1500);
});
promise2.catch((error) => {
console.error(error); // 输出:Error: 操作失败
});