怎么看 promise 状态
时间: 2024-11-04 21:10:27 浏览: 7
Promise 是 JavaScript 中用于处理异步操作的对象,它有三种状态:pending(等待中)、fulfilled(已成功)和rejected(已失败)。你可以通过 `.then()` 和 `.catch()` 方法来检查和操作 Promise 的状态。
1. **查看状态**:
- 使用 `promise.isPending()` 或者 `promise.state`(非标准,需查阅特定 Promise 实现是否提供此属性)来判断 Promise 是否处于等待状态。
- 如果 `.then()` 方法链存在,说明 Promise 已经解析(fulfilled 或 rejected),此时可以访问 `.status` 或 `.isResolved()` 来确认。
- `.isRejected()` 可以检查 Promise 是否被拒绝。
2. **监听状态变化**:
- 当 Promise 转换状态时(如成功或失败),`.then()` 和 `.catch()` 函数会分别被调用,你可以在这个回调中获取状态信息。
3. **检查结果**:
- 对于 fulfilled 状态,`.then()` 回调会接收到返回的结果;对于 rejected 状态,`.catch()` 回调会接收错误对象。
```javascript
const myPromise = new Promise((resolve, reject) => {
// ...异步操作...
});
myPromise.then(state => {
if (state === 'fulfilled') {
console.log('Promise resolved successfully');
} else if (state === 'rejected') {
console.error('Promise was rejected with error:', state.reason);
}
}).catch(error => {
console.error('Promise rejected:', error);
});
```
阅读全文