产生原因
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强
大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对
象。
状态
- Pending(进行中)
2. Fulfilled(已成功)
3. Rejected(已失败)流程图
常用方法
Promise.prototype.then()
Promise 实例具有then方法,也就是说,then方法是定义在原型对象Promise.prototype上的。它的作
用是为 Promise 实例添加状态改变时的回调函数。前面说过,then方法的第一个参数是resolved状态的
回调函数,第二个参数(可选)是rejected状态的回调函数。Promise.prototype.catch()
Promise.prototype.catch方法是.then(null, rejection)或.then(undefined, rejection)的别名,用于指定发
生错误时的回调函数。Promise.prototype.finally()
finally方法用于指定不管 Promise 对象最后状态如何,都会执行的操作。该方法是 ES2018 引
入标准的。Promise.all()
Promise.all可以将多个Promise实例包装成一个新的Promise实例。同时,成功和失败的返回
值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的
值。
const p = Promise.1 all([p1, p2, p3]);