# Promise 的特点是什么,分别有什么优缺点?什么是 Promise 链?Promise 构造函数执行和 then 函数执行有什么区别?

# 特点

  • 三种状态
    • pending:等待
    • resolved:完成
    • rejectde:拒绝
  • 一旦从等待状态变成为其他状态就永远不能更改状态

# 优点

  • 很好的解决了回调地狱的问题

# 缺点

  • 无法取消
  • 错误需要通过回调函数捕获catch

# Promise链

  • 每次调用 then 之后返回的都是一个全新的Promise,因此又可以接着使用then方法,由此形成promise链
  • 在 then 中 使用了 return,那么 return 的值会被 Promise.resolve() 包装

# Promise 构造函数执行和 then 函数执行有什么区别

  • 构造 Promise 的时候,构造函数内部的代码是立即执行的
  • then函数在promise.resolve()执行后执行