回调地狱

  1. 多层嵌套的问题;
  2. 每种任务的处理结果存在两种可能性(成功或失败),那么需要在每种任务执行结束后分别处理这两种可能性;

Promise 就是为了解决上面的问题

Promise

Promise 通过三大技术手段来解决回调地狱:

  • 回调函数延迟绑定;
  • 返回值穿透;
  • 错误冒泡;

回调函数不是直接声明,而是通过后面的 then 方法传入,这就是回调函数延迟绑定。

Promise 的状态

Promise 的本质是一个有限状态机,存在三种状态:

  • PENGDING(等待)
  • FULFILLED (成功)
  • REJECTED (失败)
    对于 Promise 而言,状态的改变不可逆,即由等待状态变为其他的状态后,就无法再改变了。