Promise
Promise对象表示异步操作的最终完成(或失败)及其结果值。
Promise是创建Promise时不一定知道的值的代理。它允许你将处理程序与异步操作的最终成功值或失败原因相关联。这使得异步方法可以像同步方法一样返回值:异步方法不会立即返回最终值,而是返回一个Promise以在未来某个时候提供该值。
States of Promise / 状态
pending: 初始状态,既不是fulfilled也不是rejectedfulfilled: 表示操作成功完成rejected: 表示操作失败
一个Promise最终会是fulfilled或rejected,但不会是pending。

Chained Promises / 链式使用
Promise.prototype.**then**()、Promise.prototype.**catch**()和Promise.prototype.**finally**()方法用于将进一步的操作与已确定的Promise相关联。这些方法返回Promise,可以进行链式使用。
Methods / 方法
Basic / 基础
Promise.resolve
resolve静态方法将给定值解析为Promise
如果该值是Promise,则返回该Promise
如果该值是thenable,resolve将调用then方法并准备两个回调
否则返回的Promise将与该值一起实现
Promise.reject
reject静态方法返回一个以给定原因被拒绝的Promise对象
Advanced / 进阶
Promise.all
要求全部
fulfilled
当所有Promise都fulfilled时fulfilled
当任何Promise被rejected时rejected
Promise.allSettled
要求全部
settled
当所有Promise都settled(fulfilled或是rejected)时fulfilled
Promise.any
要求任意
fulfilled
当任何Promise``fulfilled时fulfilled
当所有Promise都rejected时rejected
Promise.race
当任何Promise``settled时settled
换句话说,当任何Promise``fulfilled时fulfilled;当任何Promise``rejected时rejected。
Prototype Method / 原型方法
Promise.prototype.then
Promise实例的then方法最多需要两个参数:Promise的fulfilled和rejected情况的回调函数。它立即返回一个等效的Promise对象,允许链式调用其他Promise方法
Promise.prototype.catch
Promise实例的catch方法被设计为Promise``rejected时调用一个函数。它会立即返回一个等效的Promise对象,允许链式调用其他Promise方法
Promise.prototype.finally
Promise实例的finally方法会在Promise被settled(fulfilled或rejected)时被调用。该方法立即返回一个等效的Promise对象,允许链式调用其他Promise方法
这种方式可以帮助您避免在Promise的then和catch处理程序中出现重复代码。