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 等高级用法,用于处理更复杂的异步逻辑。