Promise

Promise 定义

  1. Promise 是 JS 提供的异步解决方案。
  2. 内部存在三种状态:pending fulfilled rejected。状态一旦改变不可逆。
  3. Promise 内部维护两个回调队列:onFulfilledCallbacks和onRejectedCallbacks。then 会把回调存入队列。当 resolve 或 reject 时,会执行对应回调。
  4. then 返回新的 Promise,因此可以实现链式调用。

Promise 状态

pending 等待 fulfilled 成功 rejected 失败

状态变化 pending → fulfilled pending → rejected

状态一旦改变就不能再变。【原因:避免竞态条件】

Promise 特点

Promise 最大的特点是 then会返回新的Promise。也就是Promise可以进行链式调用,因此可以解决回调地狱

Promise 本质

Promise的本质是 状态 + 回调队列