Promises
Promise 表示一个异步操作的最终结果,与之进行交互的方式主要是 then 方法,该方法注册了两个回调函数,用于接收 promise 的终值或本 promise 不能执行的原因。
一个 Promise有以下几种状态:
pending:初始状态,既不是成功,也不是失败状态。fulfilled:意味着操作成功完成。rejected:意味着操作失败。
Promise本质是一个状态机。每个promise只能是 3 种状态中的一种:pending、fulfilled或rejected。状态转变只能是pending -> fulfilled或者pending -> rejected。状态转变不可逆。then方法可以被同一个promise调用多次。then方法必须返回一个promise。规范里没有明确说明返回一个新的 promise 还是复用老的promise(即 return this),大多数实现都是返回一个新的promise,而且复用老的promise可能改变内部状态,这与规范也是相违背的。- 值穿透(上一个
promise传递过来的值,经由这个then方法的时候不做任何处理,而是交给再下个then方法去处理)。


