面试题答案
一键面试Promise对象简述
Promise 是 JavaScript 中用于处理异步操作的对象。它代表一个异步操作的最终完成(或失败)及其结果值。Promise 有三种状态:
- Pending(进行中):初始状态,既不是成功,也不是失败状态。
- Fulfilled(已成功):意味着操作成功完成,此时会有一个 resolved 值。
- Rejected(已失败):意味着操作失败,此时会有一个 rejection 原因。
一旦 Promise 的状态从 Pending 转换为 Fulfilled 或 Rejected,就永远保持该状态,这就是所谓的“已敲定(settled)”。
简单Promise示例
function asyncOperation() {
return new Promise((resolve, reject) => {
setTimeout(() => {
const success = true; // 模拟异步操作结果
if (success) {
resolve('异步操作成功,这是返回的字符串');
} else {
reject(new Error('异步操作失败'));
}
}, 1000);
});
}
处理Promise的成功和失败情况
处理 Promise 通常使用 .then()
和 .catch()
方法:
asyncOperation()
.then((result) => {
console.log(result); // 处理成功情况,打印返回的字符串
})
.catch((error) => {
console.error(error.message); // 处理失败情况,打印错误信息
});
还可以使用 async/await
语法来处理 Promise,它能让异步代码看起来更像同步代码:
async function main() {
try {
const result = await asyncOperation();
console.log(result); // 处理成功情况,打印返回的字符串
} catch (error) {
console.error(error.message); // 处理失败情况,打印错误信息
}
}
main();