在 JavaScript 中,Promise 是一种用于处理异步操作的对象,它代表了某个操作最终的完成(成功)或失败,并返回结果。Promise 提供了比传统的回调函数(callback)更优雅的方式来处理异步操作,避免了回调地狱的问题。
Promise 的基本结构:
let promise = new Promise(function(resolve, reject) {
// 执行异步操作
if (/* 成功 */) {
resolve("成功信息");
} else {
reject("错误信息");
}
});
Promise 的三种状态:
1. Pending(进行中):初始状态,既没有成功也没有失败。
2. Fulfilled(已完成):操作成功完成。
3. Rejected(已拒绝):操作失败。
Promise 的方法:
1. then():用于处理 Promise 成功的情况。
promise.then((value) => {
console.log(value); // 处理成功结果
});
2. catch():用于处理 Promise 失败的情况。
promise.catch((error) => {
console.error(error); // 处理错误信息
});
3. finally():无论 Promise 成功还是失败,都会执行。
promise.finally(() => {
console.log('操作结束'); // 无论成功还是失败都会执行
});
示例代码:
let fetchData = new Promise((resolve, reject) => {
let success = true;
setTimeout(() => {
if (success) {
resolve("数据获取成功");
} else {
reject("数据获取失败");
}
}, 2000);
});
fetchData
.then((result) => console.log(result)) // 成功时输出结果
.catch((error) => console.error(error)) // 失败时输出错误
.finally(() => console.log("操作完成")); // 操作完成后输出