Promise最早是由社区提出和实现的一种解决异步编程的方案
Promise对象通过自身的状态( PromiseState)来控制异步操作,Promise实例具有三种状态:
1.Pending:这是Promise对象的初始状态,在这个状态下,表示异步操作正在进行中,尚未完成,Promise对象处于等待状态。
2.Fulfilled:当异步操作成功完成并返回结果时,Promise对象的状态会从Pending转变为Fulfilled。这表示异步操作已经成功完成,并且可以将结果传递给后续的.then()
方法进行处理。
3.Rejected:如果异步操作失败,Promise对象的状态会从Pending变为Rejected。这表示异步操作未能成功完成,并且可以将错误信息传递给后续的.catch()
方法进行处理。
Promise对象的状态一旦改变,就不会再变,这意味着一旦Promise变为Fulfilled或Rejected状态,它就不会再回到Pending状态。
Promise的静态方法有以下几种:
方法名 | 含义 |
---|---|
Promise.resolve(data) | 直接返回一个完成状态的任务 |
Promise.reject(reason) | 直接返回一个拒绝状态的任务 |
Promise.all(任务数组) | 返回一个任务 任务数组全部成功则成功 任何一个失败则失败 |
Promise.any(任务数组) | 返回一个任务 任务数组任一成功则成功 任务全部失败则失败 |
Promise.allSettled(任务数组) | 返回一个任务 任务数组全部已决则成功 该任务不会失败 |
Promise.race(任务数组) | 返回一个任务 任务数组任一已决则已决,状态和其一致 |