js 监听 promise 状态
时间: 2023-10-04 09:12:40 浏览: 43
可以通过 Promise.prototype.then() 或 Promise.prototype.catch() 方法来监听 Promise 的状态。
Promise.prototype.then() 方法可以注册一个回调函数,当 Promise 状态变为 resolved 时执行,如果 Promise 状态已经是 resolved,则立即执行回调函数。
例如:
```js
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Success');
}, 1000);
});
promise.then((value) => {
console.log(value); // Success
});
```
Promise.prototype.catch() 方法可以注册一个回调函数,当 Promise 状态变为 rejected 时执行,如果 Promise 状态已经是 rejected,则立即执行回调函数。
例如:
```js
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
reject('Error');
}, 1000);
});
promise.catch((reason) => {
console.log(reason); // Error
});
```
除此之外,还可以使用 Promise.prototype.finally() 方法来注册一个回调函数,当 Promise 状态变为 resolved 或 rejected 时执行,无论如何都会执行该回调函数。
例如:
```js
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Success');
}, 1000);
});
promise.finally(() => {
console.log('Promise is complete');
});
```