Promise是异步编程的核心概念之一。代表一个可能尚未完成的操作,并提供了一种机制来处理该操作最终的成功或失败。具体来说,Promise是由异步函数返回的对象,能够指示该操作当前所处的状态。
当Promise被创建时,它会处于“待定”(Pending)状态,这意味着操作尚未完成。在这个阶段,Promise对象可以通过其提供的方法来注册回调函数,以便在操作最终完成后进行相应的处理。一旦操作完成,Promise的状态会变为“已兑现”(Fulfilled),表示成功;或者变为“已拒绝”(Rejected),表示失败。
除了基本的状态管理,Promise还提供了链式调用的能力,使得开发者可以以更加清晰和可读的方式进行异步操作的组合。例如,可以使用.then()方法处理成功的结果,使用.catch()方法处理错误,甚至可以通过.finally()方法执行一些清理工作,无论操作是成功还是失败。

一、什么是 Promise
Promise 是一个代表异步操作最终完成(或失败)及其结果值的对象。它有三种状态:
- Pending(待定): 初始状态,既不是成功,也不是失败。
- Fulfilled(已兑现): 操作成功完成。
- Rejected(已拒绝): 操作失败。
一旦 Promise 被 fulfilled 或 rejected,它的状态就会被锁定,后续的状态无法再改变。
Promise 的基本构造
Promise是通过 new Promise() 构造函数创建的。这个构造函数接受一个执行器(executor)函数作为参数,该函数接收两个参数:resolve 和 reject。通过调用 resolve 来标记Promise对象状态为已兑现(fulfilled),而通过调用 reject 则将其标记为已拒绝(rejected)。
const myPromise = new Promise((resolve, reject) => {
// 模拟异步操作
const success = true; // 假设操作成功
if (success) {
resolve('操作成功'); // 标记Promise为已兑现
} else {
reject('操作失败'); // 标记Promise为已拒绝
}
});
Promise 的使用
一旦创建了Promise对象,可以利用 then() 方法处理Promise对象状态为已兑现时的返回值,也可以使用 catch() 方法来处理Promise对象状态为已拒绝时的错误信息。
myPromise
.then(result => {
console.log(result); // 打印: 操作成功
})
.catch(error => {
console.error(error); // 打印错误信息
});
当Promise对象状态为已兑现时,then()方法会调用传入的回调函数并输出成功的信息;当Promise对象状态为已拒绝时,则会调用catch()方法中的回调函数输出错误信息。
二、使用 fetch() API
fetch() API 是一个现代的网络请求接口,广泛用于发起网络请求并处理响应。它返回一个 Promise,使得异步操作的管理变得更加简单和直观。fetch() 通常用于获取网络资源,如 RESTful API 的数据。</

最低0.47元/天 解锁文章
2217





