promise详解
时间: 2023-07-20 22:17:39 浏览: 57
Promise 是 JavaScript 中的一个对象,用于处理异步操作。它代表一个异步操作的最终完成或失败,并返回操作结果。
Promise 有三种状态:
- pending(进行中): 初始状态,不是成功或失败状态。
- fulfilled(已成功): 意味着操作成功完成,返回了一个值。
- rejected(已失败): 意味着操作失败,返回一个错误对象。
Promise 一旦状态改变,就不会再变,而且状态只能从 pending 变为 fulfilled 或从 pending 变为 rejected。
Promise 接受一个函数作为参数,该函数有两个参数:resolve 和 reject。在异步操作完成时,调用其中任意一个即可改变 Promise 的状态。
下面是一个简单的 Promise 示例:
```javascript
const promise = new Promise((resolve, reject) => {
// 异步操作
setTimeout(() => {
const num = Math.random();
if (num > 0.5) {
resolve(num);
} else {
reject(new Error('Promise rejected'));
}
}, 1000);
});
promise.then(result => {
console.log('Promise resolved:', result);
}).catch(error => {
console.error('Promise rejected:', error);
});
```
在上面的示例中,创建了一个 Promise 对象,并在其中进行了一个异步操作。当异步操作完成后,根据结果调用 resolve 或 reject 函数。然后通过 then 和 catch 方法来获取操作结果或错误信息。
总的来说,Promise 是一种优雅的异步编程方案,可以避免回调地狱,使代码更加易读和可维护。