Promise 是 JavaScript 中的一个对象,用于处理异步操作。它代表了一个最终可能完成(也可能被拒绝)的异步操作及其结果值。Promise 对象用于更复杂的异步编程模式,包括使用 .then()
和 .catch()
链式调用来处理异步操作的结果。
Promise 有三种状态:
- Pending(待定):初始状态,既不是成功,也不是失败状态。
- Fulfilled(已实现):意味着操作成功完成。
- Rejected(已拒绝):意味着操作失败。
Promise 的关键特性是:
- 一旦状态从 Pending 变为 Fulfilled 或 Rejected,就不能再更改状态。
- 一旦状态变为 Fulfilled 或 Rejected,就会触发相应的
.then()
或.catch()
回调函数。
Promise 的基本用法如下:
javascript
const promise = new Promise((resolve, reject) => { | |
// 模拟异步操作 | |
setTimeout(() => { | |
if (/* 异步操作成功 */) { | |
resolve('操作成功!'); | |
} else { | |
reject('操作失败!'); | |
} | |
}, 1000); | |
}); | |
promise.then(result => { | |
console.log(result); // 如果异步操作成功,输出 '操作成功!' | |
}).catch(error => { | |
console.error(error); // 如果异步操作失败,输出 '操作失败!' | |
}); |
此外,Promise 还支持链式调用、Promise.all、Promise.race 等高级用法,用于处理更复杂的异步逻辑。