#Promise
## Promise对象
- Promise是一种思维方式,是一种解决回调函数噩梦的解决方案(Promise 是异步编程的一种解决方案)。
- 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。
Primise对象代表一个异步操作
①、pending(进行中)
②、Resolved(已完成,Fulfilled)
③、Rejected(已失败)
注:可以把Promise看成是状态机,当该Promise对象创建出来之后,其状态就是进行中,然后通过程序来控制到底是执行已完成,还是执行已失败。因为Promise处理的是异步任务,所以我们还得对Promise做监听,当Promise的状态发生变化时,我们要执行相应的函数。
##Promise的特点:
1. 对象的状态不受外界影响 => 想要改变状态 需要借助 resolve,rejected 方法
resolve() => pending(进行中状态) => fulfilled(已成功)
reject() => pending(进行中状态) => rejected(已失败)
2. Promise 对象 的状态一经改变 不能再次改变
##Promise的优点:
优点 有了Promise对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数
缺点
1. 无法取消Promise,一旦新建它就会立即执行,无法中途取消。
2. 如果不设置回调函数,Promise内部抛出的错误,不会反应到外部。(直接报错)。
3. 当处于pending状态时,无法得知目前进展到哪一个阶段(刚刚开始还是即将完成)。