17.说一说我眼中的 promise + 敷衍+ 摸鱼 +周六补充

43 阅读1分钟

首先 promise 是一个构造函数 它的发明是为了解决异步回调地狱问题的 是回调地狱的解决方案之一. 它有三个状态 初始状态为 padding

  • pending 等待
  • fulfilled 成功
  • rejected 失败

且状态改变只能发生一次,发生过就不可逆转,也就是说只能从变为成功,或从等待变为失败.

  • promise 有两个原型方法 一个是返回成功的 promise 一个是返回失败的 promise image.png

image.png

promise 通过new 运算符构建实例对象,实例对象上有.then 和.catch 方法 用来接收promise 的返回值

image.png

至于上面的报错内容 promise 接收一个函数作为参数 函数参数的参数为 resolve , rejected ,使用 resolve 返回成功 rejected 返回失败,而上面的声明没有携带参数,不是一个完整的 Promise 函数.所以报错.

  • .then 它有两个参数,参数分执行时机,第一个是成功执行,第二个失败执行
  • .catch 有一个参数,接收失败的 promise

promise 是同步执行的,但是.then是异步执行的,或者说promise 代码体 里面的函数异步执行的. es6 新增的语法中有 sync 和 await

  • sync是将函数变为异步 await 是等待执行返回结果,他们一般搭配使用
  • 一般用于计时器和返回数据时,避免上一步关键处理没有执行完毕 导致下方代码异常