首先 promise 是一个构造函数 它的发明是为了解决异步回调地狱问题的 是回调地狱的解决方案之一. 它有三个状态 初始状态为 padding
- pending 等待
- fulfilled 成功
- rejected 失败
且状态改变只能发生一次,发生过就不可逆转,也就是说只能从变为成功,或从等待变为失败.
- promise 有两个原型方法 一个是返回成功的 promise 一个是返回失败的 promise
promise 通过new 运算符构建实例对象,实例对象上有.then 和.catch 方法 用来接收promise 的返回值
至于上面的报错内容 promise 接收一个函数作为参数 函数参数的参数为 resolve , rejected ,使用 resolve 返回成功 rejected 返回失败,而上面的声明没有携带参数,不是一个完整的 Promise 函数.所以报错.
- .then 它有两个参数,参数分执行时机,第一个是成功执行,第二个失败执行
- .catch 有一个参数,接收失败的 promise
promise 是同步执行的,但是.then是异步执行的,或者说promise 代码体 里面的函数异步执行的. es6 新增的语法中有 sync 和 await
- sync是将函数变为异步 await 是等待执行返回结果,他们一般搭配使用
- 一般用于计时器和返回数据时,避免上一步关键处理没有执行完毕 导致下方代码异常